Android-Image-Cropper
Android-Image-Cropper copied to clipboard
Bug: crash when cropping of a large image
Steps:
-
Download and choose this image for cropping: http://img.gawkerassets.com/img/18tbvl3htulmyjpg/original.jpg Also attached here: original.zip
-
Run the "test" or "sample" sample app.
-
Crop almost 100% of the image
The bug: It crashes and exits the app. It doesn't occur on the "quick start" sample project for some reason.
Tested on Pixel 2.
Here's the log:
2018-04-07 14:39:32.463 19054-19054/com.example.test E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.test, PID: 19054 java.lang.RuntimeException: Canvas: trying to draw too large(178676928bytes) bitmap. at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:229) at android.view.RecordingCanvas.drawBitmap(RecordingCanvas.java:98) at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:529) at android.widget.ImageView.onDraw(ImageView.java:1362) at android.view.View.draw(View.java:19982) at android.view.View.updateDisplayListIfDirty(View.java:18857) at android.view.View.draw(View.java:19710) at android.view.ViewGroup.drawChild(ViewGroup.java:4321) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4107) at android.view.View.draw(View.java:19985) at android.view.View.updateDisplayListIfDirty(View.java:18857) at android.view.View.draw(View.java:19710) at android.view.ViewGroup.drawChild(ViewGroup.java:4321) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4107) at android.view.View.updateDisplayListIfDirty(View.java:18848) at android.view.View.draw(View.java:19710) at android.view.ViewGroup.drawChild(ViewGroup.java:4321) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4107) at android.view.View.updateDisplayListIfDirty(View.java:18848) at android.view.View.draw(View.java:19710) at android.view.ViewGroup.drawChild(ViewGroup.java:4321) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4107) at android.view.View.updateDisplayListIfDirty(View.java:18848) at android.view.View.draw(View.java:19710) at android.view.ViewGroup.drawChild(ViewGroup.java:4321) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4107) at android.view.View.updateDisplayListIfDirty(View.java:18848) at android.view.View.draw(View.java:19710) at android.view.ViewGroup.drawChild(ViewGroup.java:4321) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4107) at android.view.View.draw(View.java:19985) at com.android.internal.policy.DecorView.draw(DecorView.java:784) at android.view.View.updateDisplayListIfDirty(View.java:18857) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:673) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:679) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:787) at android.view.ViewRootImpl.draw(ViewRootImpl.java:3257) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3073) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2453) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1441) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7076) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:935) at android.view.Choreographer.doCallbacks(Choreographer.java:747) at android.view.Choreographer.doFrame(Choreographer.java:682) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:921) at android.os.Handler.handleCallback(Handler.java:819) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
I think I have the same problem. Canvas: trying to draw too large(115605504bytes) bitmap. Do you have any idea how can we wrap this exception? Because it's another activity that we don't have access?
Hi, I'm experiencing this issue too, is this issue resolved yet?
I'm also experiencing this issue.
i fixed this problem
- using Glide library to setting bitmap on ImageView
- go to Manifest file and set android: hardwareAccelerated property to false at your ImageView Activity.