Android-Image-Cropper icon indicating copy to clipboard operation
Android-Image-Cropper copied to clipboard

Bug: crash when cropping of a large image

Open AndroidDeveloperLB opened this issue 6 years ago • 4 comments

Steps:

  1. Download and choose this image for cropping: http://img.gawkerassets.com/img/18tbvl3htulmyjpg/original.jpg Also attached here: original.zip

  2. Run the "test" or "sample" sample app.

  3. 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)

AndroidDeveloperLB avatar Apr 07 '18 11:04 AndroidDeveloperLB

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?

andreluizreis avatar Jul 16 '18 16:07 andreluizreis

Hi, I'm experiencing this issue too, is this issue resolved yet?

ghiyatshanif avatar Aug 29 '19 04:08 ghiyatshanif

I'm also experiencing this issue.

titanwalking avatar Oct 22 '19 08:10 titanwalking

i fixed this problem

  1. using Glide library to setting bitmap on ImageView
  2. go to Manifest file and set android: hardwareAccelerated property to false at your ImageView Activity.

dummest avatar Jan 19 '23 01:01 dummest