Mon application Android utilise React Native 0.22.0, développé sur Mac. Tout va bien sur le développement. Après la sortie d'aujourd'hui, j'ai reçu des rapports de plantage de Crashlytics.
Le rapport est
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)
Environ 50 % des utilisateurs sont confrontés à ce problème. Vraiment besoin d'être réparé.
L'appareil manque de mémoire, dans le premier cas, il essaie d'allouer 22 Mo pour un bitmap où il n'y a que 12 Mo disponibles. Savez-vous combien de mémoire votre application allouait jusqu'à ce plantage ? car il peut s'agir d'un problème de fuite de mémoire
Je n'ai rien remarqué d'alarmant dans les applications que j'ai récemment déployées sur Android sur le Play Store. Pourriez-vous fournir plus de contexte ici? Je crois que c'est un sujet de profilage approprié afin que nous puissions avoir une idée de ce qui se passe ici.
android/app/src/main/AndroidManifest.xml
<application
android:largeHeap="true"
L'ajout de largeHeap semble résoudre le problème
Commentaire le plus utile
android/app/src/main/AndroidManifest.xml
L'ajout de largeHeap semble résoudre le problème