android.graphics.BitmapFactory.nativeDecodeAsset issues in Android 4.3 -
i having issues app android 4.3. not sure causing , error coming from. not using bitmap functions can debug it. here error log google play:
java.lang.runtimeexception: unable start activity componentinfo{com.capripio.wordzcatch/com.capripio.wordzcatch.splashactivity}: android.view.inflateexception: binary xml file line #1: error inflating class android.widget.relativelayout @ android.app.activitythread.performlaunchactivity(activitythread.java:2308) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2362) @ android.app.activitythread.access$700(activitythread.java:168) @ android.app.activitythread$h.handlemessage(activitythread.java:1329) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:137) @ android.app.activitythread.main(activitythread.java:5493) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:525) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1209) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1025) @ dalvik.system.nativestart.main(native method) caused by: android.view.inflateexception: binary xml file line #1: error inflating class android.widget.relativelayout @ android.view.layoutinflater.createview(layoutinflater.java:626) @ com.android.internal.policy.impl.phonelayoutinflater.oncreateview(phonelayoutinflater.java:56) @ android.view.layoutinflater.oncreateview(layoutinflater.java:675) @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:700) @ android.view.layoutinflater.inflate(layoutinflater.java:470) @ android.view.layoutinflater.inflate(layoutinflater.java:398) @ android.view.layoutinflater.inflate(layoutinflater.java:354) @ com.android.internal.policy.impl.phonewindow.setcontentview(phonewindow.java:361) @ android.app.activity.setcontentview(activity.java:1956) @ com.capripio.wordzcatch.splashactivity.oncreate(splashactivity.java:14) @ android.app.activity.performcreate(activity.java:5372) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1104) @ android.app.activitythread.performlaunchactivity(activitythread.java:2270) ... 11 more caused by: java.lang.reflect.invocationtargetexception @ java.lang.reflect.constructor.constructnative(native method) @ java.lang.reflect.constructor.newinstance(constructor.java:417) @ android.view.layoutinflater.createview(layoutinflater.java:600) ... 23 more caused by: java.lang.outofmemoryerror @ android.graphics.bitmapfactory.nativedecodeasset(native method) @ android.graphics.bitmapfactory.decodestream(bitmapfactory.java:596) @ android.graphics.bitmapfactory.decoderesourcestream(bitmapfactory.java:444) @ android.graphics.drawable.drawable.createfromresourcestream(drawable.java:832) @ android.content.res.resources.loaddrawable(resources.java:2988) @ android.content.res.typedarray.getdrawable(typedarray.java:602) @ android.view.view.<init>(view.java:3563) @ android.view.view.<init>(view.java:3492) @ android.view.viewgroup.<init>(viewgroup.java:469) @ android.widget.relativelayout.<init>(relativelayout.java:242) ... 26 more thanks!
i've found ways , make small class.
public abstract class bitmapresloader { public static bitmap decodebitmapfromresource(bitmap.config config, resources res, int resid, int reqwidth, int reqheight) { final bitmapfactory.options options = new bitmapfactory.options(); options.injustdecodebounds = true; bitmapfactory.decoderesource(res, resid, options); options.insamplesize = calculateinsamplesize(options, reqwidth, reqheight); options.injustdecodebounds = false; options.inpreferredconfig = config; return bitmapfactory.decoderesource(res, resid, options); } private static int calculateinsamplesize( bitmapfactory.options options, int reqwidth, int reqheight) { final int height = options.outheight; final int width = options.outwidth; int insamplesize = 1; if (height > reqheight || width > reqwidth) { final int heightratio = math.round((float) height / (float) reqheight); final int widthratio = math.round((float) width / (float) reqwidth); insamplesize = heightratio < widthratio ? heightratio : widthratio; } return insamplesize; } } and use as
decodebitmapfromresource( bitmap.config.argb_8888, splashactivity.getresources(), r.drawable.bg, 480, 800);
Comments
Post a Comment