vertical studio react images horizontal and java android error-handling bitmap horizontalscrollview

java - studio - scrollview horizontal react native



java.lang.OutOfMemoryError BitmapFactory.nativeDecodeAsset() (2)

Hola, estoy creando una aplicación sobre señales de tráfico. las señales de tráfico están en formato .png. algunos de ellos los estoy mostrando en horizontalscrollview. Pero cuando intento abrir actividades, obtengo este error de los informes de error del mercado android. aquí está mi informe de error:

<java.lang.RuntimeException: Unable to start activity ComponentInfo{com.besalti.svenskavagmarken/com.besalti.svenskavagmarken.varningsmarken}: android.view.InflateException: Binary XML file line #645: Error inflating class <unknown> at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675) at android.app.ActivityThread.access$1500(ActivityThread.java:121) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3701) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #645: Error inflating class <unknown> at android.view.LayoutInflater.createView(LayoutInflater.java:518) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) at android.view.LayoutInflater.rInflate(LayoutInflater.java:626) at android.view.LayoutInflater.rInflate(LayoutInflater.java:626) at android.view.LayoutInflater.rInflate(LayoutInflater.java:626) at android.view.LayoutInflater.rInflate(LayoutInflater.java:626) at android.view.LayoutInflater.inflate(LayoutInflater.java:408) at android.view.LayoutInflater.inflate(LayoutInflater.java:320) at android.view.LayoutInflater.inflate(LayoutInflater.java:276) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:227) at android.app.Activity.setContentView(Activity.java:1657) at com.besalti.svenskavagmarken.varningsmarken.onCreate(varningsmarken.java:25) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623) ... 11 more Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:415) at android.view.LayoutInflater.createView(LayoutInflater.java:505) ... 26 more Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:494) at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:370) at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:715) at android.content.res.Resources.loadDrawable(Resources.java:1720) at android.content.res.TypedArray.getDrawable(TypedArray.java:601) at android.widget.ImageView.<init>(ImageView.java:122) at android.widget.ImageView.<init>(ImageView.java:112) ... 29 more>

¿Alguien puede ayudarme?


El error "el tamaño del mapa de bits excede el presupuesto de VM" está realmente en la biblioteca de gráficos nativos (Skia). Es un poco confuso ya que el problema es que Skia se ha quedado sin memoria en el montón nativo de datos de mapa de bits. Ver BitmapFactory OOM volviendo loco para el fondo. Para evitar esto, tendrás que mirar cuidadosamente el uso de tu mapa de bits

  • asegurándose de no dejar flotantes las referencias de mapa de bits
  • haciendo un bitmap de reciclaje / null onn a medida que se vuelven libres (esto parece ayudar).

Use el muestreo para leer el mapa de bits. Puede haber un error debido a pérdidas de memoria.

BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4; Bitmap bitmap=BitmapFactory.decodeFile(path,options);