Glide NoResultEncoderAvailableException异常解决

首先将解决方法提出来:缓存策略DiskCacheStrategy.DATA。

使用Glide加载图片,版本是4.15.0,有天发现无法显示gif图片,原始代码如下:

复制代码
Glide.with(context)
    .load(本地资源路径)
    .diskCacheStrategy(DiskCacheStrategy.ALL)
    .into(imageView)

报错代码 DecodeJob.onResourceDecoded方法:

断点跟结果如下

从这里可以判断出,是进入了diskCacheStrategy.isResourceCacheable(isFromAlternateCacheKey, dataSource, encodeStrategy) 这个分支导致出错,继续跟,实现代码如下:DiskCacheStrategy.ALL的isResourceCacheable实现,此时dataSource=DataSource.LOCAL,故该方法返回true。

至此,错误原因找到了,加载gif的devoded没有使用Glide默认的解码工具,而是ByteBufferAnimationDecoder(https://github.com/penfeizhou/APNG4Android/tree/master 项目下的gif库),导致找不到正确的encoder,解决方案就是更换缓存策略DiskCacheStrategy.DATA。

相关推荐
alexhilton5 小时前
将应用迁移到Navigation 3:痛点、加班和紧急修复
android·kotlin·android jetpack
杉氧10 小时前
Navigation Compose 深度实践:如何优雅地串联起你的全栈 App?
android·架构·android jetpack
雨白14 小时前
指针与数组的核心机制
android
黄林晴18 小时前
Room 3.0 正式发布!包名彻底重构,KMP 成为核心主线
android·android jetpack
三少爷的鞋19 小时前
Kotlin 协程环境下的 DCL 懒加载:别把线程时代的经验直接搬过来
android
plainGeekDev19 小时前
Gson → kotlinx.serialization
android·java·kotlin
CYY951 天前
Compose 入门篇
android·kotlin
杉氧2 天前
Compose 时代的 MVI 架构:如何用单向数据流驱动复杂 UI?
android·架构·android jetpack
杉氧2 天前
Modifier 的艺术:为什么链式调用的顺序决定了UI 的生命周期?
android·架构·android jetpack