I am using glide to load few images in my app
the glide that i am using is
com.github.bumptech.glide:glide:4.11.0
The code for loading glide image is
context?.let { context ->
Glide.with(context)
.load(story.url)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.placeholder(binding.ivStory.drawable)
.listener(object: RequestListener<Drawable> {
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<Drawable>?,
isFirstResource: Boolean
): Boolean {
return false
}
override fun onResourceReady(
resource: Drawable?,
model: Any?,
target: Target<Drawable>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
binding.loader.visibility = View.GONE
animation.start()
return false
}
}
)
.into(binding.ivStory)
The exception that I am getting on firebase is as follows
Fatal Exception: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@d7a7131
at android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:55)
at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:234)
at android.view.RecordingCanvas.drawBitmap(RecordingCanvas.java:97)
at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:529)
at android.widget.ImageView.onDraw(ImageView.java:1376)
at android.view.View.draw(View.java:19442)
at android.view.View.updateDisplayListIfDirty(View.java:18392)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1975)
at android.view.View.draw(View.java:19445)
at android.view.View.updateDisplayListIfDirty(View.java:18392)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1975)
at android.view.View.updateDisplayListIfDirty(View.java:18383)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1975)
at android.view.View.draw(View.java:19445)
at android.view.View.updateDisplayListIfDirty(View.java:18392)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at android.view.View.updateDisplayListIfDirty(View.java:18383)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at android.view.View.updateDisplayListIfDirty(View.java:18383)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at androidx.drawerlayout.widget.DrawerLayout.drawChild(DrawerLayout.java:1426)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at android.view.View.draw(View.java:19445)
at android.view.View.updateDisplayListIfDirty(View.java:18392)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at android.view.View.updateDisplayListIfDirty(View.java:18383)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at android.view.View.updateDisplayListIfDirty(View.java:18383)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at android.view.View.updateDisplayListIfDirty(View.java:18383)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at android.view.View.updateDisplayListIfDirty(View.java:18383)
at android.view.View.draw(View.java:19170)
at android.view.ViewGroup.drawChild(ViewGroup.java:4324)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4087)
at android.view.View.draw(View.java:19445)
at com.android.internal.policy.DecorView.draw(DecorView.java:892)
at android.view.View.updateDisplayListIfDirty(View.java:18392)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:676)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:682)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:790)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3503)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3285)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2782)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1718)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7513)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1066)
at android.view.Choreographer.doCallbacks(Choreographer.java:878)
at android.view.Choreographer.doFrame(Choreographer.java:794)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1052)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:210)
at android.app.ActivityThread.main(ActivityThread.java:7080)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:523)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:863)
I am not sure what is going wrong here can some one please give proper solution for this.