Closed soura216 closed 2 years ago
I'm done here. To less info
The issue was not fixed yet
Crashing Device : Samsung Galaxy M31
java.lang.RuntimeException: at android.graphics.RecordingCanvas.throwIfCannotDraw (RecordingCanvas.java:281) at android.graphics.BaseRecordingCanvas.drawBitmap (BaseRecordingCanvas.java:91) at android.graphics.drawable.BitmapDrawable.draw (BitmapDrawable.java:548) at android.widget.ImageView.onDraw (ImageView.java:1434) at com.ortiz.touchview.TouchImageView.onDraw (TouchImageView.kt:284) at android.view.View.draw (View.java:23191) at android.view.View.updateDisplayListIfDirty (View.java:22066) at android.view.View.draw (View.java:22921) at android.view.ViewGroup.drawChild (ViewGroup.java:5230) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4987) at android.view.View.draw (View.java:23194) at androidx.viewpager.widget.ViewPager.draw (ViewPager.java:2426) at android.view.View.updateDisplayListIfDirty (View.java:22066) at android.view.View.draw (View.java:22921) at android.view.ViewGroup.drawChild (ViewGroup.java:5230) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4987) at android.view.View.draw (View.java:23194) at android.view.View.updateDisplayListIfDirty (View.java:22066) at android.view.View.draw (View.java:22921) at android.view.ViewGroup.drawChild (ViewGroup.java:5230) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4987) at android.view.View.updateDisplayListIfDirty (View.java:22052) at android.view.View.draw (View.java:22921) at android.view.ViewGroup.drawChild (ViewGroup.java:5230) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4987) at android.view.View.updateDisplayListIfDirty (View.java:22052) at android.view.View.draw (View.java:22921) at android.view.ViewGroup.drawChild (ViewGroup.java:5230) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4987) at android.view.View.updateDisplayListIfDirty (View.java:22052) at android.view.View.draw (View.java:22921) at android.view.ViewGroup.drawChild (ViewGroup.java:5230) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4987) at android.view.View.updateDisplayListIfDirty (View.java:22052) at android.view.View.draw (View.java:22921) at android.view.ViewGroup.drawChild (ViewGroup.java:5230) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4987) at android.view.View.draw (View.java:23194) at com.android.internal.policy.DecorView.draw (DecorView.java:1114) at android.view.View.updateDisplayListIfDirty (View.java:22066) at android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:588) at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:594) at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:667) at android.view.ViewRootImpl.draw (ViewRootImpl.java:4263) at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:4047) at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:3320) at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:2200) at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:8960) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:996) at android.view.Choreographer.doCallbacks (Choreographer.java:794) at android.view.Choreographer.doFrame (Choreographer.java:729) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:981) at android.os.Handler.handleCallback (Handler.java:883) at android.os.Handler.dispatchMessage (Handler.java:100) at android.os.Looper.loop (Looper.java:237) at android.app.ActivityThread.main (ActivityThread.java:7814) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1068)
To less info
Send a stacktrace it definitely to less, especially when it comes from android.widget.ImageView.onDraw (ImageView.java:1434)
Make it reproduce able, otherwise it's a local problem.
The issue was not fixed yet
Crashing Device : Samsung Galaxy M31
Please make a test, where the error is raised in CI, then it makes sense for me to jump in
I'm done here. To less info
![]()
I'm done here. To less info
![]()
Do you update your library after fixing it. I am using you implementation 'com.github.MikeOrtiz:TouchImageView:3.0.5'
I fixed nothing here concerning this issue. This is an open source project, even the history is public and everyone in warmly welcome to contribute
Please help someone to fix the issue
Same problem:
Fatal Exception: java.lang.RuntimeException: Canvas: trying to draw too large(192000000bytes) bitmap. at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:229) at android.view.RecordingCanvas.drawBitmap(RecordingCanvas.java:97) at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:529) at android.widget.ImageView.onDraw(ImageView.java:1367)
Affecting large number of users
We are also affected by this, full stacktrace:
Fatal Exception: java.lang.RuntimeException: Canvas: trying to draw too large(245401728bytes) bitmap.
at android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:281)
at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:91)
at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:548)
at android.widget.ImageView.onDraw(ImageView.java:1453)
at x.x.x.TouchImageView.onDraw(TouchImageView.java:289)
at android.view.View.draw(View.java:23901)
at android.view.View.updateDisplayListIfDirty(View.java:22776)
at android.view.View.draw(View.java:23631)
at android.view.ViewGroup.drawChild(ViewGroup.java:5336)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5093)
at android.view.View.updateDisplayListIfDirty(View.java:22762)
at android.view.View.draw(View.java:23631)
at android.view.ViewGroup.drawChild(ViewGroup.java:5336)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5093)
at android.view.View.draw(View.java:23904)
at androidx.viewpager.widget.ViewPager.draw(ViewPager.java:2426)
at android.view.View.updateDisplayListIfDirty(View.java:22776)
at android.view.View.draw(View.java:23631)
at android.view.ViewGroup.drawChild(ViewGroup.java:5336)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5093)
at android.view.View.updateDisplayListIfDirty(View.java:22762)
at android.view.View.draw(View.java:23631)
at android.view.ViewGroup.drawChild(ViewGroup.java:5336)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5093)
at android.view.View.updateDisplayListIfDirty(View.java:22762)
at android.view.View.draw(View.java:23631)
at android.view.ViewGroup.drawChild(ViewGroup.java:5336)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5093)
at android.view.View.updateDisplayListIfDirty(View.java:22762)
at android.view.View.draw(View.java:23631)
at android.view.ViewGroup.drawChild(ViewGroup.java:5336)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5093)
at android.view.View.draw(View.java:23904)
at com.android.internal.policy.DecorView.draw(DecorView.java:1282)
at android.view.View.updateDisplayListIfDirty(View.java:22776)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:579)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:585)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:662)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:4994)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4701)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3818)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2575)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9916)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1010)
at android.view.Choreographer.doCallbacks(Choreographer.java:809)
at android.view.Choreographer.doFrame(Choreographer.java:744)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8512)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
It comes from standard ImageView
Please change to a normal ImageView
and observe if it's happen there too. I expect there will be no difference and you will see the problem there too.
Or please provide a reproduceable sample.
I'm having this issue with Viewpager2 and Glide. But I think this is not related with TouchImageView
library.
Try to follow up here: https://github.com/bumptech/glide/issues/3775
For anyone who care, I have to downscaling the image before setImageDrawable
.
fun bind(imageUrl: String) {
val width = binding.root.context.resources.displayMetrics.widthPixels
requestManager.load(imageUrl)
.apply(RequestOptions().override(width))
.into(object : CustomTarget<Drawable?>() {
override fun onResourceReady(
resource: Drawable,
transition: Transition<in Drawable?>?
) {
binding.touchImageView.setImageDrawable(resource)
}
override fun onLoadCleared(@Nullable placeholder: Drawable?) = Unit
})
}
java.lang.RuntimeException: at android.graphics.RecordingCanvas.throwIfCannotDraw (RecordingCanvas.java:281) at android.graphics.BaseRecordingCanvas.drawBitmap (BaseRecordingCanvas.java:91) at android.graphics.drawable.BitmapDrawable.draw (BitmapDrawable.java:548) at android.widget.ImageView.onDraw (ImageView.java:1434) at com.ortiz.touchview.TouchImageView.onDraw (TouchImageView.kt: 284) at android.view.View.draw (View.java:23191) at android.view.View.updateDisplayListIfDirty (View.java:22066) at android.view.View.draw (View.java:22921) at android.view.ViewGroup.drawChild (ViewGroup.java:5230) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4987)