jimmod / ShareToComputer

GNU General Public License v3.0
143 stars 29 forks source link

The app crashed when I canceled the QR code scanning process after selecting a file to share. #30

Closed sagorahmed closed 4 years ago

sagorahmed commented 4 years ago

Expected behavior

I expected that I could cancel the QR code scanning process after selecting a file to share.

Actual behavior

After selecting a file to share, when I canceled the QR code scanning process, then the app crashed.

How to reproduce

Here is every possible detail to reproduce the bug.

  1. Open the app.
  2. Select a file using "SHARE IMAGE/VIDEO" or "SHARE IMAGE".
  3. Now go to the main menu of the app and click on "Scan QR code".
  4. Your phone's rear camera will open to scan the QR code. Then press the back button of your phone and notice the error.

Recording Of The Bug

https://www.youtube.com/watch?v=kH8UNpIGgls

LogCat

07-07 00:06:33.632  5375  5375 E AndroidRuntime: FATAL EXCEPTION: main

07-07 00:06:33.632  5375  5375 E AndroidRuntime: Process: com.jim.sharetocomputer, PID: 5375

07-07 00:06:33.632  5375  5375 E AndroidRuntime: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@308c95c

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1311)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.graphics.Canvas.drawBitmap(Canvas.java:1445)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:551)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.getDrawableRenderNode(View.java:17784)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.drawBackground(View.java:17708)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17515)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16517)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16512)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16512)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16512)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16512)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at androidx.drawerlayout.widget.DrawerLayout.drawChild(DrawerLayout.java:1426)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17527)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16517)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16512)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16512)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16512)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16512)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17293)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.drawChild(ViewGroup.java:3926)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3716)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.draw(View.java:17527)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:3184)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.View.updateDisplayListIfDirty(View.java:16517)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:325)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:331)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:366)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewRootImpl.draw(ViewRootImpl.java:3234)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3033)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2615)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1528)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7524)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.Choreographer.doCallbacks(Choreographer.java:686)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.Choreographer.doFrame(Choreographer.java:622)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:739)

07-07 00:06:33.632  5375  5375 E AndroidRuntime:    at android.os.Handler.dispatchMes
jimmod commented 4 years ago

Duplicate with #21