java.lang.OutOfMemoryError: Не удалось выделить 11675148 байт для 6 - PullRequest
0 голосов
/ 05 июля 2018

Может кто-нибудь разобраться в этой ошибке? Это на физическом устройстве, Android 6.0, однако на VD, 5.0, он отлично работает.

Вот ошибка

Process: com.example.ericr.pokerquizzer, PID: 10884
java.lang.OutOfMemoryError: Failed to allocate a 11675148 byte allocation with 6
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:44
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2638)
at android.content.res.Resources.loadDrawable(Resources.java:2543)
at android.content.res.Resources.getDrawable(Resources.java:806)
at android.content.Context.getDrawable(Context.java:458)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:3
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatD
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatD
at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatRe
at android.support.v7.widget.AppCompatImageHelper.loadFromAttributes(AppComp
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.ja
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.ja
at android.support.v7.app.AppCompatViewInflater.createImageView(AppCompatVie
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInfl
at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelega
at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDele
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDe
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity
at com.example.ericr.pokerquizzer.PlayActivity.onCreate(PlayActivity.java:37
at android.app.Activity.performCreate(Activity.java:6245)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:113
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)

                                                                                at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.jav
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

Хорошо, пока я печатал это, я провел дополнительные исследования и обнаружил, что эта проблема связана с плотностью изображения? Однако мое приложение отлично работает на планшетах с низкой плотностью (Nexus 9) и на виртуальных устройствах с высокой плотностью (Nexus 5), но аварийно завершает работу на Moto G3 средней плотности (физическое устройство).

Заранее спасибо

1 Ответ

0 голосов
/ 05 июля 2018

Оптимизируйте изображения перед их добавлением в проект Android, вы можете сделать это с помощью бесплатного программного обеспечения, такого как RIOT, а также убедиться, что если вы выполняете вызовы изображений с URL-адресов, они всегда будут единичными

...