๋ด Android ์ฑ์ Mac์์ ๊ฐ๋ฐ๋ React Native 0.22.0์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ฐ๋ฐ์ ๋ชจ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ค๋ ์ถ์ํ ํ Crashlytics์์ ์ถฉ๋ ๋ณด๊ณ ์๋ฅผ ๋ฐ์์ต๋๋ค.
๋ณด๊ณ ์๋
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)
์ฝ 50%์ ์ฌ์ฉ์๊ฐ ์ด ๋ฌธ์ ์ ์ง๋ฉดํฉ๋๋ค. ์ ๋ง ๊ณ ์ณ์ผ ํฉ๋๋ค.
์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ 12MB๋ง ์ฌ์ฉํ ์ ์๋ ๋นํธ๋งต์ 22MB๋ฅผ ํ ๋นํ๋ ค๊ณ ํฉ๋๋ค. ์ถฉ๋์ด ๋ฐ์ํ ๋๊น์ง ์ฑ์ด ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์๊ณ ์์ต๋๊น? ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฌธ์ ์ผ ์ ์๊ธฐ ๋๋ฌธ์
์ต๊ทผ์ Android์์ Play ์คํ ์ด์ ๋ฐฐํฌํ ์ฑ์์ ๋๋ผ์ด ์ ์ ๋ฐ๊ฒฌํ์ง ๋ชปํ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ ๋ง์ ๋ฐฐ๊ฒฝ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น? ๋๋ ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ์ ์๋๋ก ์ ์ ํ ํ๋กํ์ผ๋ง์ ์ฃผ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
android/app/src/main/AndroidManifest.xml
<application
android:largeHeap="true"
largeHeap์ ์ถ๊ฐํ๋ฉด ํด๊ฒฐ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
android/app/src/main/AndroidManifest.xml
largeHeap์ ์ถ๊ฐํ๋ฉด ํด๊ฒฐ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.