我写了一个应用程序,到目前为止,我总是在sdk level 25上构建它。现在我想尝试在较低级别上运行它,但它崩溃。虽然调试我想通了,这个链接给出了错误:在SDK 22上安装应用程序在Bitmapfactory导致错误
bitmapBackgroundColors = BitmapFactory.decodeResource(this.getResources(), R.drawable.background_colors);
你有任何想法如何摧毁像一切? :D Bitmapfactory自SDK 1以来一直存在,所以这真的不能成为问题。
我compileSdkVersion是25,我的minSdkVersion 15和我targetSdkVersion 25(虽然我仍然不明白RLY什么这些数字的含义)
编辑:该错误是一个OutOfMemory错误。但它必须加载的.jpg只是128kb大
java.lang.OutOfMemoryError: Failed to allocate a 223948812 byte allocation with 8134272 free bytes and 180MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:467)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:497)
at com.cucumbertroup.strawberry.strawberry.GameView.<init>(GameView.java:136)
at com.cucumbertroup.strawberry.strawberry.MainActivity.onCreate(MainActivity.java:29)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
at android.app.ActivityThread.access$800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5389)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
编辑2:所以可能我犯了一些图像解码的错误。 我怎么能做到这一点的效率比是:
bitmapBackgroundColors = BitmapFactory.decodeResource(this.getResources(), R.drawable.background_colors);
bitmapBackgroundColors = Bitmap.createScaledBitmap(bitmapBackgroundColors, screenX * 3, screenY, false);
什么是logcat中显示错误消息(由???)。 – Jorgesys
看看编辑 – MilamberMilamber