KFTT OutofMemory崩溃

时间:2013-04-06 07:52:52

标签: android memory-management out-of-memory kindle-fire

我们已经在亚马逊市场上提交了一个应用程序,上传的.apk在其他设备和我的KFTT上也能正常运行,但是当我们或其他用户从亚马逊市场下载应用程序时,它会导致OutofMEmoryError。我们在游戏中使用了1024X1024以及2048X2048精灵表。

当我们手动安装.apk时,它永远不会崩溃,但是当我们从亚马逊市场下载它之后运行它时它总会崩溃。 有人可以告诉我们它的原因是什么以及如何解决它?

java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:483)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:549)
at com.finoit.androidgames.framework.gl.Texture.load(Texture.java:42)
at com.finoit.androidgames.framework.gl.Texture.(Texture.java:30)
at com.finoit.androidgames.tapafish.Assets.load(Assets.java:458)
at com.finoit.androidgames.tapafish.FishTank.onSurfaceCreated(FishTank.java:23)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1446)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)

1 个答案:

答案 0 :(得分:0)

我有同样的行为:亚马逊8,9的内存不足,旁边的尺寸与nexus 10中的相同,其工作效果非常好64 mb。

作为最快的解决方案,我已经为AndroidManifest添加了largeHeap选项,它可以为您提供更多内存,如果需要,可以提供高达256 MB的内存。暂时将其作为最简单的解决方案。

....

另外,如果要优化,请尝试使用MAT的DDMS,以了解分配内存的最大部分。 当您找到最大的部分时,通常这是位图,您可以随时使用bitmapFactory加载它们,其比例低于hdpi(大多数设备的亚马逊默认密度),它确实可以节省内存。