Yalantis/uCrop

Fatal Exception: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap

code-n-roll opened this issue · 1 comments

Do you want to request a feature or report a bug?
bug

What is the current behavior?
Fatal Exception: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@6991aad

What is the expected behavior?
No exception

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
Don't know, cause taken from user's device from Crashlytics

Please attach any image files, URL and stack trace that can be used to reproduce the bug.

stacktrace
Fatal Exception: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@6991aad
       at android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:87)
       at android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:264)
       at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:97)

       at com.yalantis.ucrop.util.FastBitmapDrawable.draw(FastBitmapDrawable.java:41)

       at android.widget.ImageView.onDraw(ImageView.java:1462)
       at android.view.View.draw(View.java:23898)
       at android.view.View.updateDisplayListIfDirty(View.java:22767)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5339)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5311)
       at android.view.View.updateDisplayListIfDirty(View.java:22714)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5339)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5311)
       at android.view.View.updateDisplayListIfDirty(View.java:22714)
       at android.view.View.draw(View.java:23628)
       at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
       at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
       at android.view.View.updateDisplayListIfDirty(View.java:22753)
       at android.view.View.draw(View.java:23628)
       at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
       at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
       at android.view.View.updateDisplayListIfDirty(View.java:22753)
       at android.view.View.draw(View.java:23628)
       at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
       at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
       at android.view.View.updateDisplayListIfDirty(View.java:22753)
       at android.view.View.draw(View.java:23628)
       at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
       at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
       at android.view.View.updateDisplayListIfDirty(View.java:22753)
       at android.view.View.draw(View.java:23628)
       at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
       at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
       at android.view.View.updateDisplayListIfDirty(View.java:22753)
       at android.view.View.draw(View.java:23628)
       at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
       at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
       at android.view.View.draw(View.java:23901)
       at com.android.internal.policy.DecorView.draw(DecorView.java:1378)
       at android.view.View.updateDisplayListIfDirty(View.java:22767)
       at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:602)
       at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:608)
       at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:684)
       at android.view.ViewRootImpl.draw(ViewRootImpl.java:5445)
       at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5153)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4217)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2924)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10513)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1108)
       at android.view.Choreographer.doCallbacks(Choreographer.java:866)
       at android.view.Choreographer.doFrame(Choreographer.java:797)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8751)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Which versions of uCrop, and which Android API versions are affected by this issue? Did this work in previous versions of uCrop?

Lib version: 2.2.6
Android version: 12
Device: Galaxy A13 5G
work in previous version: unknown