背景
最近做新项目,我使用Glide读取本地文件加载到ImageView时,发现不能正常加载,并且我从日志看到如下信息
You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored
坑爹的是它仅是一个info级别的log,不认真看日志还不一定能发现有报错,不知道官方怎么想的.
有一点需要说明,该项目是纯kotlin编写的(有看文章说跟使用kotlin有关系)
附上代码中调用方式
Glide.with(context)
.load(item?.imgFilePath)
.into(holder.binding.ivPresetImg)
解决
看到有人说写一个类继承AppGlideModule,这个方法官方文档也有提及,但是实践证明没有用
后来又尝试了另一种方法
implementation 'com.github.bumptech.glide:glide:4.16.0'
kapt 'com.github.bumptech.glide:compiler:4.16.0'
特别是第二行,最开始用
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
方式,发现没有效果,然后用
kapt 'com.github.bumptech.glide:compiler:4.16.0'
sync的时候报错kapt不识别,需在项目最外层增加kotlin-kapt配置才能正常编译
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt' //增加的配置
}
正常编译后覆盖安装,还是不行,然后clean build后重新编译,还是不行,看到网上有人说需要卸载旧的apk,尝试了一下,果然就可以了
总结
- com.github.bumptech.glide:compiler:4.16.0不可少,我最开始只导入了com.github.bumptech.glide:glide:4.16.0
- 使用kapt配置注解器,kapt的语法支持需要配合'kotlin-kapt'
- 配置后需要clean build清理缓存,然后再build,同时需要卸载旧的apk再安装才能生效