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。

相关推荐
耶叶11 分钟前
Android 新权限申请模型(Activity Result API)
android
阿拉斯攀登16 分钟前
【RK3576 安卓 JNI/NDK 系列 04】JNI 核心语法(下):字符串、数组与对象操作
android·驱动开发·rk3568·瑞芯微·rk安卓驱动·jni字符串操作
2501_9159090617 分钟前
不用越狱就看不到 iOS App 内部文件?使用 Keymob 查看和导出应用数据目录
android·ios·小程序·https·uni-app·iphone·webview
llxxyy卢21 分钟前
web部分中等题目
android·前端
轩情吖25 分钟前
MySQL之事务管理
android·后端·mysql·adb·事务·隔离性·原子性
万物得其道者成1 小时前
uni-app Android 离线打包:多环境(prod/dev)配置
android·opencv·uni-app
符哥20081 小时前
Firebase 官方提供的Quick Start-Android 库的功能集讲解
android
koeda1 小时前
android17系统兼容
android·安卓
进击的cc2 小时前
面试官:Handler 没消息时为啥不卡死?带你从源码到底层内核彻底整明白!
android·面试
Yang-Never2 小时前
OpenGL ES ->YUV图像基础知识
android·java·开发语言·kotlin·android studio