08-24 12:28:03.001 2853-2853/com.infotycoonmobile E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.infotycoonmobile, PID: 2853
java.lang.OutOfMemoryError: Failed to allocate a 4177932 byte allocation with 2769272 free bytes and 2MB until OOM
at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
at com.reactnative.ivpusic.imagepicker.PickerModule.getBase64StringFromFile(PickerModule.java:391)
at com.reactnative.ivpusic.imagepicker.PickerModule.getImage(PickerModule.java:539)
at com.reactnative.ivpusic.imagepicker.PickerModule.getSelection(PickerModule.java:417)
at com.reactnative.ivpusic.imagepicker.PickerModule.cameraPickerResult(PickerModule.java:648)
at com.reactnative.ivpusic.imagepicker.PickerModule.onActivityResult(PickerModule.java:679)
at com.facebook.react.bridge.ReactContext.onActivityResult(ReactContext.java:265)
at com.facebook.react.ReactInstanceManager.onActivityResult(ReactInstanceManager.java:675)
at com.facebook.react.ReactActivityDelegate.onActivityResult(ReactActivityDelegate.java:149)
at com.facebook.react.ReactActivity.onActivityResult(ReactActivity.java:77)
at android.app.Activity.dispatchActivityResult(Activity.java:7165)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4994)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5041)
at android.app.ActivityThread.access$1600(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
do you have some time to try to debug this and submit a PR? thanks
What should I do?
try to figure out if we can somehow optimize getBase64StringFromFile method and it's memory usage to avoid OOM.
I'm using Android Studio. How should I do to debug the library inside my app?
I could not figure out how to avoid OOM
Is there any update for this?
Hi, there's any update for this? I put this issue a week ago. Please, I need a solution ASAP.
Hi I am also getting this errorr.
+1
compress function also cause out of memory
06-14 15:17:37.573 2763-2763/com.leightonphotolibrary E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.leightonphotolibrary, PID: 2763
java.lang.OutOfMemoryError: Failed to allocate a 80568588 byte allocation with 16777216 free bytes and 75MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:879)
at android.graphics.Bitmap.createBitmap(Bitmap.java:856)
at android.graphics.Bitmap.createBitmap(Bitmap.java:787)
at id.zelory.compressor.ImageUtil.decodeSampledBitmapFromFile(ImageUtil.java:70)
at id.zelory.compressor.ImageUtil.compressImage(ImageUtil.java:33)
at id.zelory.compressor.Compressor.compressToFile(Compressor.java:60)
at com.reactnative.ivpusic.imagepicker.Compression.compressImage(Compression.java:63)
at com.reactnative.ivpusic.imagepicker.PickerModule.getImage(PickerModule.java:544)
at com.reactnative.ivpusic.imagepicker.PickerModule.getSelection(PickerModule.java:431)
at com.reactnative.ivpusic.imagepicker.PickerModule.cameraPickerResult(PickerModule.java:681)
at com.reactnative.ivpusic.imagepicker.PickerModule.onActivityResult(PickerModule.java:715)
at com.facebook.react.bridge.ReactContext.onActivityResult(ReactContext.java:253)
at com.facebook.react.ReactInstanceManager.onActivityResult(ReactInstanceManager.java:692)
at com.facebook.react.ReactActivityDelegate.onActivityResult(ReactActivityDelegate.java:126)
at com.facebook.react.ReactActivity.onActivityResult(ReactActivity.java:75)
at android.app.Activity.dispatchActivityResult(Activity.java:6973)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4181)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4228)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1564)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:241)
at android.app.ActivityThread.main(ActivityThread.java:6274)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
I'm also having this issue,
Is there any way to handle this error temporary asking the user to select another image if it is so big to fit in memory?.
Also here:
Fatal Exception: java.lang.OutOfMemoryError: Failed to allocate a 134189068 byte allocation with 4194304 free bytes and 94MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(VMRuntime.java)
at android.graphics.BitmapFactory.nativeDecodeStream(BitmapFactory.java)
at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:677)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:653)
at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:433)
at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:459)
at com.reactnative.ivpusic.imagepicker.Compression.resize(Compression.java:30)
at com.reactnative.ivpusic.imagepicker.PickerModule.croppingResult(PickerModule.java:733)
at com.reactnative.ivpusic.imagepicker.PickerModule.onActivityResult(PickerModule.java:764)
at com.facebook.react.bridge.ReactContext.onActivityResult(ReactContext.java:262)
at com.facebook.react.ReactInstanceManager.onActivityResult(ReactInstanceManager.java:703)
at com.facebook.react.ReactActivityDelegate.onActivityResult(ReactActivityDelegate.java:124)
at com.facebook.react.ReactActivity.onActivityResult(ReactActivity.java:75)
at android.app.Activity.dispatchActivityResult(Activity.java:6500)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3925)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3972)
at android.app.ActivityThread.-wrap16(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1537)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
@chpl how we can use it with crop-picker?
@chpl how we can use it with crop-picker?
instead of loading the full image here https://github.com/ivpusic/react-native-image-crop-picker/blob/0fba817a9721e83c4a7a42e3ad6c61336132b3a7/android/src/main/java/com/reactnative/ivpusic/imagepicker/Compression.java#L30 downscale it as described in the link above.
Most helpful comment
compress function also cause out of memory
06-14 15:17:37.573 2763-2763/com.leightonphotolibrary E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.leightonphotolibrary, PID: 2763
java.lang.OutOfMemoryError: Failed to allocate a 80568588 byte allocation with 16777216 free bytes and 75MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:879)
at android.graphics.Bitmap.createBitmap(Bitmap.java:856)
at android.graphics.Bitmap.createBitmap(Bitmap.java:787)
at id.zelory.compressor.ImageUtil.decodeSampledBitmapFromFile(ImageUtil.java:70)
at id.zelory.compressor.ImageUtil.compressImage(ImageUtil.java:33)
at id.zelory.compressor.Compressor.compressToFile(Compressor.java:60)
at com.reactnative.ivpusic.imagepicker.Compression.compressImage(Compression.java:63)
at com.reactnative.ivpusic.imagepicker.PickerModule.getImage(PickerModule.java:544)
at com.reactnative.ivpusic.imagepicker.PickerModule.getSelection(PickerModule.java:431)
at com.reactnative.ivpusic.imagepicker.PickerModule.cameraPickerResult(PickerModule.java:681)
at com.reactnative.ivpusic.imagepicker.PickerModule.onActivityResult(PickerModule.java:715)
at com.facebook.react.bridge.ReactContext.onActivityResult(ReactContext.java:253)
at com.facebook.react.ReactInstanceManager.onActivityResult(ReactInstanceManager.java:692)
at com.facebook.react.ReactActivityDelegate.onActivityResult(ReactActivityDelegate.java:126)
at com.facebook.react.ReactActivity.onActivityResult(ReactActivity.java:75)
at android.app.Activity.dispatchActivityResult(Activity.java:6973)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4181)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4228)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1564)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:241)
at android.app.ActivityThread.main(ActivityThread.java:6274)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)