【发布时间】:2015-10-16 06:09:31
【问题描述】:
我的安卓应用在我的平板电脑上运行良好,但是当你在我的手机上加载活动时它会崩溃。
我觉得奇怪的是,当您启动应用程序时,主标题页加载没有问题,但是当我加载游戏活动或仅加载说明页面活动时,应用程序将崩溃。
标题页由一个背景图像和 3 个图像按钮组成,而说明页面由一个相同分辨率的背景图像和标题页活动的 3 个相同按钮中的 2 个组成。所以它有效地加载了更少的图像是我所得到的,但是在尝试加载该活动时它会崩溃。
这是堆栈跟踪:
07-25 12:51:14.841 16090-16090/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: bitrump.fishygame, PID: 16090
java.lang.OutOfMemoryError: Failed to allocate a 132710412 byte allocation with 16777120 free bytes and 72MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:816)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:637)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:665)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:695)
at bitrump.fishygame.gameGraphics.onCreate(gameGraphics.java:41)
at android.app.Activity.performCreate(Activity.java:6374)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2767)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2879)
at android.app.ActivityThread.access$900(ActivityThread.java:182)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1475)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6141)
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:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
有没有人知道如何提高应用程序的效率?它正在一款最新的手机 Galaxy s6 上崩溃。顺便说一下,它使用的平板电脑是 nvidia shield 平板电脑。
【问题讨论】:
-
您创建的位图大小是多少?从消息看起来大约 126 MB?对吗?
-
最大的是我的背景图片,大小为 252kb。
-
谢谢,这似乎是由于我的背景图片。每当我完全从这两个活动中取出背景图像时,它们都会起作用。我需要寻找一种更好的方法来获得我想要的背景图片。
标签: android