KFTT OutofMemory Сбои

Мы подали заявку на Amazon Market, загруженный файл.apk отлично работает на других устройствах, а также на моем KFTT, но когда мы или другие пользователи загружаем приложение с Amazon Market, это вызывает OutofMEmoryError. Мы использовали 1024X1024, а также спрайт 2048X2048 в нашей игре.

Когда мы устанавливаем.apk вручную, он никогда не падает, но он всегда падает, когда мы запускаем его после загрузки с рынка Amazon. Может кто-нибудь сказать, пожалуйста, что может быть причиной этого и как с этим бороться?

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 ответ

У меня такое же поведение: нехватка памяти на amazon hd 8,9, кроме этого размер такой же, как в nexus 10, который очень хорошо работает с 64 мб.

Как самое быстрое решение, я добавил опцию largeHeap в AndroidManifest, которая дает вам больше памяти, если необходимо, до 256 МБ. Попробуйте это как самое простое решение на данный момент.

....

Также, если вы хотите оптимизировать, попробуйте DDMS с MAT, чтобы понять большую часть выделенной памяти. Когда вы найдете самые большие фрагменты, обычно это растровые изображения, вы всегда можете загрузить их с помощью bitmapFactory с масштабом ниже hdpi(по умолчанию амазонка для большинства устройств), это действительно экономит память.

Другие вопросы по тегам