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。

相关推荐
雨白5 小时前
Jetpack系列(三):Room数据库——从增删改查到数据库平滑升级
android·android jetpack
花王江不语8 小时前
android studio 配置硬件加速 haxm
android·ide·android studio
江太翁10 小时前
mediapipe流水线分析 三
android·mediapipe
与火星的孩子对话11 小时前
Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
android·unity·ios·c#·ip
tmacfrank12 小时前
Android 网络全栈攻略(四)—— TCPIP 协议族与 HTTPS 协议
android·网络·https
fundroid13 小时前
Kotlin 协程:Channel 与 Flow 深度对比及 Channel 使用指南
android·kotlin·协程
草字13 小时前
cocos 打包安卓
android
DeBuggggggg14 小时前
centos 7.6安装mysql8
android
浩浩测试一下15 小时前
渗透信息收集- Web应用漏洞与指纹信息收集以及情报收集
android·前端·安全·web安全·网络安全·安全架构
移动开发者1号16 小时前
深入理解原子类与CAS无锁编程:原理、实战与优化
android·kotlin