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。

相关推荐
前行的小黑炭7 分钟前
Android Flow的其他使用:stateIn和冷流(普通Flow)
android·kotlin
tran_sient18 分钟前
【Android】制造一个ANR并进行简单分析
android·anr
前行的小黑炭1 小时前
Android Flow:你真的了解?在工作当中的运用~~通过光照例子来解释一下..
android·kotlin
tangweiguo030519871 小时前
极致效率:用 Copilot 加速你的 Android 开发
android·copilot
阿华的代码王国1 小时前
【Android】Room数据库的使用
android·数据库·room
lichong9511 小时前
【混合开发】Android+Webview+VUE播放视频之视频解析工具mediainfo-Macos
android·macos·架构·vue·音视频·api·postman
翻滚丷大头鱼8 小时前
android View详解—View的刷新流程源码解析
android
zhangphil8 小时前
Android adb shell命令分析应用内存占用
android·adb
漠缠9 小时前
Android AI客户端开发(语音与大模型部署)面试题大全
android·人工智能
Lei活在当下10 小时前
一个基础问题:关于SDK初始化时机的选择
android