Mystery stacktrace en la consola de desarrollador de Android (el tamaño del bitmap supera los 32 bits)

Obtengo el stacktrace siguiente en la consola de desarrollador. Algunos dicen que “la aplicación no se iniciará” o “se bloqueará al inicio”.

No sé qué hacer, ¡no menciona ninguno en la clase de mi aplicación! ¿Alguien recibió el mismo error y encontró una solución?

java.lang.IllegalArgumentException: bitmap size exceeds 32bits at android.graphics.Bitmap.nativeCreate(Native Method) at android.graphics.Bitmap.createBitmap(Bitmap.java:695) at android.view.View.buildDrawingCache(View.java:6646) at android.view.ViewGroup.onAnimationStart(ViewGroup.java:1345) at android.view.ViewGroup.drawChild(ViewGroup.java:1591) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459) at android.view.View.draw(View.java:6996) at android.widget.FrameLayout.draw(FrameLayout.java:357) at android.view.ViewGroup.drawChild(ViewGroup.java:1732) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459) at android.view.ViewGroup.drawChild(ViewGroup.java:1730) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459) at android.view.ViewGroup.drawChild(ViewGroup.java:1730) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459) at android.view.View.draw(View.java:6996) at android.widget.FrameLayout.draw(FrameLayout.java:357) at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2054) at android.view.ViewRoot.draw(ViewRoot.java:1632) at android.view.ViewRoot.performTraversals(ViewRoot.java:1335) at android.view.ViewRoot.handleMessage(ViewRoot.java:1991) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:4358) 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:849) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) at dalvik.system.NativeStart.main(Native Method) 

si es una cuestión de cantidad, debes reciclar tus bitmaps.
si se trata de una cuestión de tamaño (no se pueden cargar imágenes demasiado grandes), debe cargar una copia más clara de su bitmap.

Aquí está el código para crear una imagen más pequeña

 Options thumbOpts = new Options(); thumbOpts.inSampleSize = 4; Bitmap bmp = BitmapFactory.decodeFile(imagePath, mThumbOpts); 

inSampleSize establecido en un valor> 1, solicita al decodificador que muestre por debajo la imagen original, devolviendo una imagen más pequeña para guardar la memoria.
Use una potencia de 2 para que sea más eficiente.

Esta publicación puede ser útil

Bitmap.createBitmap ()

Lanza IllegalArgumentException

si los valores x, y, ancho, alto están fuera de las dimensiones del bitmap de origen, o el ancho es <= 0, o la altura es <= 0

Primero asegúrese de que los valores de x, y, ancho y alto sean más pequeños que el bitmap de origen.

El problema para mí fue la matriz. Mi matriz tiene un valor de traducción que trajo uno de los valores fuera de los límites del bitmap de entrada.

Espero que esto ayude

En mi caso, fue un error en esta cadena:

 WebView.getSettings().setUseWideViewPort(true); 

Crash solo estaba en API 18 y menos