Mi aplicación de Android usa React Native 0.22.0, desarrollado en Mac. Todo está bien en el desarrollo. Después del lanzamiento de hoy, recibí informes de fallas de Crashlytics.
El informe es
Fatal Exception: java.lang.OutOfMemoryError: Failed to allocate a 23103292 byte allocation with 13011316 free bytes and 12MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(VMRuntime.java)
at android.graphics.Bitmap.nativeCreate(Bitmap.java)
at android.graphics.Bitmap.createBitmap(Bitmap.java:942)
at android.graphics.Bitmap.createBitmap(Bitmap.java:913)
at android.graphics.Bitmap.createBitmap(Bitmap.java:880)
at com.facebook.imagepipeline.memory.BitmapPool.alloc(BitmapPool.java:55)
at com.facebook.imagepipeline.memory.BitmapPool.alloc(BitmapPool.java:30)
at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:259)
at com.facebook.imagepipeline.platform.ArtDecoder.decodeStaticImageFromStream(ArtDecoder.java:137)
at com.facebook.imagepipeline.platform.ArtDecoder.decodeFromEncodedImage(ArtDecoder.java:81)
at com.facebook.imagepipeline.decoder.ImageDecoder.decodeStaticImage(ImageDecoder.java:127)
at com.facebook.imagepipeline.decoder.ImageDecoder.decodeImage(ImageDecoder.java:94)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(DecodeProducer.java:188)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.access$200(DecodeProducer.java:96)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.run(DecodeProducer.java:128)
at com.facebook.imagepipeline.producers.JobScheduler.doJob(JobScheduler.java:207)
at com.facebook.imagepipeline.producers.JobScheduler.access$000(JobScheduler.java:27)
at com.facebook.imagepipeline.producers.JobScheduler$1.run(JobScheduler.java:78)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:43)
at java.lang.Thread.run(Thread.java:818)
Alrededor del 50% de los usuarios se enfrentan a este problema. Realmente necesita ser arreglado.
El dispositivo se está quedando sin memoria, en el primer caso está tratando de asignar 22 mb para un mapa de bits donde solo hay 12 mb disponibles. ¿Sabes cuánta memoria estaba asignando tu aplicación hasta que se bloqueó? porque puede ser un problema de pérdida de memoria
No he notado nada alarmante en las aplicaciones que he implementado en Android en Play Store recientemente. ¿Podría proporcionar más antecedentes aquí? Creo que este es un tema que requiere un perfil adecuado para que podamos tener una idea de lo que está pasando aquí.
android/app/src/main/AndroidManifest.xml
<application
android:largeHeap="true"
Agregar largeHeap parece arreglarlo
Comentario más útil
android/app/src/main/AndroidManifest.xml
Agregar largeHeap parece arreglarlo