Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash (Canvas: trying to use a recycled bitmap) #10697

Closed
6 tasks done
AkisTheo opened this issue Dec 25, 2023 · 4 comments
Closed
6 tasks done

Crash (Canvas: trying to use a recycled bitmap) #10697

AkisTheo opened this issue Dec 25, 2023 · 4 comments

Comments

@AkisTheo
Copy link

Checklist

  • I am able to reproduce the bug with the latest version given here: CLICK THIS LINK.
  • I made sure that there are no existing issues - open or closed - which I could contribute my information to.
  • I have read the FAQ and my problem isn't listed.
  • I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
  • This issue contains only one bug.
  • I have read and understood the contribution guidelines.

Affected version

0.26.0

Steps to reproduce the bug

1.Open Newpipe And watch a lengthy video 2. Start rotating the device And start and pausing 3. The error should happen because the device is out of memory

Expected behavior

I expected My device to watch the video normally

Actual behavior

It gave me this error and crashed the app, having me to reload it and losing a bit of my video progress

Screenshots/Screen recordings

No response

Logs

{"user_action":"ui error","request":"ACRA report","content_language":"en-US","content_country":"US","app_language":"en_US","service":"none","package":"org.schabi.newpipe","version":"0.26.0","os":"Linux Android 5.1 - 22","time":"2023-12-24 23:25","exceptions":["java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@3fb68b0f\n\tat android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1282)\n\tat android.view.GLES20Canvas.drawBitmap(GLES20Canvas.java:599)\n\tat android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:538)\n\tat android.widget.ImageView.onDraw(ImageView.java:1176)\n\tat android.view.View.draw(View.java:15488)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14377)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.draw(View.java:15500)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14377)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.draw(View.java:15500)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14377)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.draw(View.java:15500)\n\tat android.widget.FrameLayout.draw(FrameLayout.java:658)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14377)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat com.google.android.material.appbar.CollapsingToolbarLayout.drawChild(CollapsingToolbarLayout.java:457)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.draw(View.java:15500)\n\tat android.widget.FrameLayout.draw(FrameLayout.java:658)\n\tat com.google.android.material.appbar.CollapsingToolbarLayout.draw(CollapsingToolbarLayout.java:400)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14377)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.draw(View.java:15500)\n\tat com.google.android.material.appbar.AppBarLayout.draw(AppBarLayout.java:482)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14377)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.draw(View.java:15500)\n\tat android.widget.FrameLayout.draw(FrameLayout.java:658)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14377)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat androidx.fragment.app.FragmentContainerView.drawChild(FragmentContainerView.kt:235)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat androidx.fragment.app.FragmentContainerView.dispatchDraw(FragmentContainerView.kt:225)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat androidx.drawerlayout.widget.DrawerLayout.drawChild(DrawerLayout.java:1478)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14369)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.View.draw(View.java:15197)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:3535)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:3328)\n\tat com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchDraw(PhoneWindow.java:2787)\n\tat android.view.View.draw(View.java:15500)\n\tat android.widget.FrameLayout.draw(FrameLayout.java:658)\n\tat com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2766)\n\tat android.view.View.updateDisplayListIfDirty(View.java:14377)\n\tat android.view.View.getDisplayList(View.java:14406)\n\tat android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:279)\n\tat android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:285)\n\tat android.view.ThreadedRenderer.draw(ThreadedRenderer.java:335)\n\tat android.view.ViewRootImpl.draw(ViewRootImpl.java:2939)\n\tat android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2753)\n\tat android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2367)\n\tat android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1292)\n\tat android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6598)\n\tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:800)\n\tat android.view.Choreographer.doCallbacks(Choreographer.java:603)\n\tat android.view.Choreographer.doFrame(Choreographer.java:572)\n\tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786)\n\tat android.os.Handler.handleCallback(Handler.java:815)\n\tat android.os.Handler.dispatchMessage(Handler.java:104)\n\tat android.os.Looper.loop(Looper.java:194)\n\tat android.app.ActivityThread.main(ActivityThread.java:5643)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat java.lang.reflect.Method.invoke(Method.java:372)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)\n"],"user_comment":""} 
  | ReplyForwardAdd reaction -- | --

Affected Android/Custom ROM version

Android 5.1

Affected device model

ZTE blade A452

Additional information

My device only has one gigabyte of RAM.

@AkisTheo AkisTheo added bug Issue is related to a bug needs triage Issue is not yet ready for PR authors to take up labels Dec 25, 2023
@opusforlife2
Copy link
Collaborator

What made you think this is a memory issue? Your posted crash log contains nothing about memory.

Can this be reproduced on any other device?

@opusforlife2 opusforlife2 added the waiting for author If the author doesn't respond, the issue will be auto-closed. Otherwise the label will be removed. label Dec 26, 2023
@opusforlife2 opusforlife2 changed the title NewPipe Keeps giving me an out of memory error Crash (Canvas: trying to use a recycled bitmap) Dec 26, 2023
@AkisTheo
Copy link
Author

What made you think this is a memory issue? Your posted crash log contains nothing about memory.

Can this be reproduced on any other device?

Firstly, I just found this crash report in my email to the support team. And I think it can be replicated if your device has low memory around one gigabyte.

@github-actions github-actions bot removed the waiting for author If the author doesn't respond, the issue will be auto-closed. Otherwise the label will be removed. label Dec 26, 2023
@opusforlife2
Copy link
Collaborator

And I think it can be replicated

Let's find out for sure.

@opusforlife2 opusforlife2 added the waiting for author If the author doesn't respond, the issue will be auto-closed. Otherwise the label will be removed. label Dec 26, 2023
Copy link

This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.

@opusforlife2 opusforlife2 removed bug Issue is related to a bug waiting for author If the author doesn't respond, the issue will be auto-closed. Otherwise the label will be removed. needs triage Issue is not yet ready for PR authors to take up labels Jan 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants