OutOfMemoryError.случается на телефоне при использовании изображений (не большие изображения, и я использую Largeheap) - PullRequest
0 голосов
/ 20 мая 2019

Я задавал много вопросов здесь о моей заявке. У меня есть приложение на Google Play (JS - дизайн моды и моделирование). Я запускаю приложение на многих устройствах, и ни одно из них не делает ошибку. но у меня есть телефон с ошибкой, телефон работает под управлением Android 7.1 и они Galaxy S7 (не только телефоны Galaxy).

мое приложение использует много изображений (почти 900), и я много тестирую, что может вызвать ошибку OutOfMemoryRrror, это не большое изображение (на некоторых телефонах оно работает, и даже на одном телефоне оно может работать на одном, но делать ошибку на другом.). Я использую в манифесте это 2:

Android: hardwareAccelerated = "ложь" андроид: largeHeap = "истинный"

но все равно это не работает. проблема возникает, когда пользователь добавляет изображения в основной макет.

в игровой консоли я вижу это: enter image description here

так что, если я понимаю, после того, как пользователи установят приложение, во время выполнения потребуется еще 50 МБ, так что я думаю, что если у пользователя нет еще 50 МБ, приложение вылетает!

ошибка с игровой консоли:

java.lang.OutOfMemoryError: 
  at dalvik.system.VMRuntime.newNonMovableArray (Native Method)
  at android.graphics.BitmapFactory.nativeDecodeAsset (Native Method)
  at android.graphics.BitmapFactory.decodeStream (BitmapFactory.java:620)
  at android.graphics.BitmapFactory.decodeResourceStream (BitmapFactory.java:455)
  at android.graphics.drawable.Drawable.createFromResourceStream (Drawable.java:1152)
  at android.content.res.ResourcesImpl.loadDrawableForCookie (ResourcesImpl.java:857)
  at android.content.res.ResourcesImpl.loadDrawable (ResourcesImpl.java:708)
  at android.content.res.Resources.loadDrawable (Resources.java:863)
  at android.content.res.TypedArray.getDrawable (TypedArray.java:928)
  at android.widget.ImageView.<init> (ImageView.java:157)
  at android.widget.ImageView.<init> (ImageView.java:145)
  at android.support.v7.widget.AppCompatImageView.<init> (AppCompatImageView.java:71)
  at android.support.v7.widget.AppCompatImageView.<init> (AppCompatImageView.java:67)
  at android.support.v7.app.AppCompatViewInflater.createView (AppCompatViewInflater.java:106)
  at android.support.v7.app.AppCompatDelegateImplV9.createView (AppCompatDelegateImplV9.java:1016)
  at android.support.v7.app.AppCompatDelegateImplV9.onCreateView (AppCompatDelegateImplV9.java:1073)
  at android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:769)
  at android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:727)
  at android.view.LayoutInflater.rInflate (LayoutInflater.java:858)
  at android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:821)
  at android.view.LayoutInflater.rInflate (LayoutInflater.java:861)
  at android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:821)
  at android.view.LayoutInflater.rInflate (LayoutInflater.java:861)
  at android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:821)
  at android.view.LayoutInflater.inflate (LayoutInflater.java:518)
  at android.view.LayoutInflater.inflate (LayoutInflater.java:426)
  at android.view.LayoutInflater.inflate (LayoutInflater.java:377)
  at android.support.v7.app.AppCompatDelegateImplV9.setContentView (AppCompatDelegateImplV9.java:287)
  at android.support.v7.app.AppCompatActivity.setContentView (AppCompatActivity.java:139)
  at com.royijournogmail.designjs.MainActivity.onCreate (MainActivity.java:859)
  at android.app.Activity.performCreate (Activity.java:6757)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1119)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2704)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2812)
  at android.app.ActivityThread.-wrap12 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1528)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6311)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:872)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:762)

Я очень уверен, что это не произойдет, потому что большие образы, я думаю, это только потому, что использование во время выполнения, после установки.

некоторые могут помочь, что я могу сделать? если я буду использовать библиотеку, которая обрабатывает изображения, это поможет? или я могу вставить в Google Play, что вам нужно 100 МБ бесплатно, чтобы загрузить приложение? я не хочу, чтобы для какого-то пользователя приложение зависало!

спасибо большое!

...