Android运行时报错:@GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be...._DreamBackTo的博客-程序员秘密

技术标签: AppGlideModule  LibraryGlideModules  【Android报错信息归纳】  GlideModule  GlideApp  Glide  

报错详细信息如下

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

原因

  大概意思就是说,在使用Glide的时候,自定义GlideModule来进行缓存和位置设置的时候,要用AppGlideModule来代替之前的GlideModule。我最近将应用依赖的Glide版本进行了升级,由4.1.1升到了4.9.0,然后运行时报出了这个错误。

解决方法

  我把之前MyGlideModule implements GlideModule 的逻辑,改成了MyGlideModule extends AppGlideModul,并在类上加了@GlideModule注解,其他的逻辑没有变化。

  修改前:

public class MyGlideModule implements GlideModule {

    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        builder.setDiskCache(new ExternalCacheDiskCacheFactory(context , AppConstants.DefaultSetting.SET_DISK_CACHE_IMAGE_FLAG , (int) AppConstants.DefaultSetting.SET_IMAGE_MAX_DISK_CACHE_SIZE));
    }

    @Override
    public void registerComponents(Context context, Glide glide, Registry registry) {}
}

  修改后:

@GlideModule
public class MyGlideModule extends AppGlideModule {

    /**
     * 设置清单解析,设置为false,避免添加相同的modules两次
     * @return
     */
    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }

    @Override
    public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
        builder.setDiskCache(new ExternalPreferredCacheDiskCacheFactory(context , AppConstants.DefaultSetting.SET_DISK_CACHE_IMAGE_FLAG , (int) AppConstants.DefaultSetting.SET_IMAGE_MAX_DISK_CACHE_SIZE));
        super.applyOptions(context, builder);
    }

    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {}
}

  修改完后再运行,报出如下错误:You cannot call Glide.get() in registerComponents(), use the provided Glide instance instead

  意思就是说,Glide的调用方法有误,于是我去查看了Glide的相关文档,发现Glide之前通过apply来设置占位图和缓存策略,现在通过GlideApp直接调用,像之前的写法就会出问题。

  修改前:

Glide.with(mContext)
     .load(logoUrl)
     .apply( new RequestOptions().error(defaultResId).skipMemoryCache(true))
     .into(imageView);

  修改后:

GlideApp.with(mContext)
        .load(logoUrl)
        .error(defaultResId)
        .skipMemoryCache(true)
        .into(imageView);
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zxc514257857/article/details/78772380

智能推荐

Android 简单记事本_一壶浊酒伴余生的博客-程序员秘密

写在前面课程作业需要,于是忙活好几天抄了一个简单的记事本,使用已学内容包括Android UI布局,Activity的跳转,SQLite数据库。开发环境:Android Studio参考:https://blog.csdn.net/zouguo1211/article/details/83474845源码链接:https://github.com/zsy0216/Notepad...

Python入门基础篇 No.12 —— 字符串_转义字符_字符串拼接_字符串复制_input()_微信转义字符_0FF1ine404的博客-程序员秘密

Python入门基础篇 No.12 —— 转义字符_字符串拼接_字符串复制_input()文章目录Python入门基础篇 No.12 —— 转义字符_字符串拼接_字符串复制_input()前言一、转义字符二、字符串拼接三、字符串复制四、不换行打印五、从控制台读取字符串总结前言一、转义字符我们可以使用“ \ + 特殊字符”,实现某些难以用字符表示的效果。\ (在行尾时) ; 续行符\ \ ; 反斜杠符号\ ’ ; 单引号\ " ; 双引号\b

android微信网页视频播放器代码下载,android微信中的录音功能 demo_weixin_39985842的博客-程序员秘密

微信中的录音功能 demo资源下载此资源下载价格为3D币,请先登录资源文件列表weixin_Record/res/values-v11/styles.xml,324weixin_Record/res/drawable-xhdpi/chatto_bg_focused.9.png,2336weixin_Record/res/drawable-xhdpi/ic_launcher.png,12...

深度学习(20):nerf论文翻译与学习_deepvoxels_biter0088的博客-程序员秘密

nerf论文翻译与学习。NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

复习C++基础知识-----“我的第一本C++”读书笔记1_每天看一遍,防止恋爱&&堕落的博客-程序员秘密

Debug : 在单独运行时,往往需要编译器提供一些库文件Release : 可以在没有安装visual c++的computer上正常运行 常规设置1)在共享DLL中使用MFC : 表示把程序中用到的MFC类库作为动态链接库,这样编译生成器的程序比较小,但是在运行的时候,需要操作系统提供额外的动态库支持。2)在静态库中使用MFC : 表示把用到的MFC类的内容作为静态

四、numpy生成矩阵,矩阵的合并,矩阵增加维度,用concatenate合并多个矩阵_numpy 矩阵合并开创新维度_小白蒋博客的博客-程序员秘密

python -V3.7numpy -V 1.17背景继上一篇学完矩阵的索引、取某行某列元素、多维矩阵转为一行数列,本文继续学习矩阵的合并。1、两个矩阵上下合并,用vertical stack,函数就是vstackimport numpy as np# 矩阵的合并,用vertical stack,上下合并A = np.array([1,1,1])B = np.array([2,2...

随便推点

Mysql的蠕虫复制_mql蠕虫复制怎么不复制主键_黑衣如墨剑如雪的博客-程序员秘密

作用:1)、数据迁移;2)、测试表的性能(eg:数据多时的执行sql效率等)。1、查看需要复制的表的相关信息2、复制表结构create table 新表like旧表; 如果不在同一个数据库,记得使用数据库名.旧表;另外,还有复制表结构和数据的sql,但是与上面语句的执行结果是存在差异的。只复制表结构到新表:create table 新表 select * fro...

uni-app微信小程序单个页面横屏以及使用uni-datetime-picker、popup出现弹窗后还能滚动页面的问题_uni-popup和uni-datetime-picker一起使用bug_D浩DzD的博客-程序员秘密

uni-app微信小程序单个页面横屏以及使用uni-datetime-picker、popup出现弹窗后还能滚动页面的问题。catchtouchmove以及pageOrientation属性

css设置圆角_css圆角_雀巢脆脆鲨-的博客-程序员秘密

用border-radius属性来设置圆角可以写:四个值:左上 右上 右下 左下三个值:左上 右上左下 右下两个值:左上右下 右上左下一个值:共用给单独一角设置圆角:border-xxx-xxx-radius例如:左上角 border-top-left-radius div{ width: 100px; height: 100px; background-color: red...

android 屏幕的放大缩小实现_android 界面缩放_小小研发员的博客-程序员秘密

                       ios中UIScrollView能很好的实现放大缩小功能,在anroid这里,scrollview并不能很好的支持放大缩小,而对于简单的图片放大,缩小,android可以使用ZoomControls控件来实现一些简单图片放大缩小,移动,,,,当然,直接使用webview来加载图片也是能很好实现图片放大缩小功能的。                    ...

Centos7 gcc4.8.5升级到版本gcc5.4.0_centos7 gcc升级_A-刘晨阳的博客-程序员秘密

文章目录前言下载、解压安装包安装包下载地址:linux中下载:解压安装包:下载相关的依赖和组件新建一个文件夹存放编译的文件编译、安装查看是否安装成功前言  因为Centos7默认的是gcc4.8.5,但是有时候要用到gcc5.4,因为,我来教大家如何从gcc4.8.5升到到gcc5.4.0。下载、解压安装包下载有两种下载:一种是直接在网页上下载,在上传到linux中;另一种就是在linux中wget地址下载。找好自己要存放安装包的目录,我的这个就在/home/目录下安装包下载地址:http

百度关键词排名查询源码_百度移动搜索关键词排名优化_weixin_39827798的博客-程序员秘密

移动数字时代已经到来,没有给人们太多的思考时间,而越来越多的用户通过手机进行社交、查看新闻、移动办公及浏览网页等,随着数字营销被推上风口浪尖,众多企业开始转向移动SEO,纷纷试水移动搜索引擎优化。移动营销为什么做移动端搜索引擎关键词优化?转化率高用户主动搜索关键词,访问你网站上的产品或服务,目标非常精准,因此转化率更高。性价比高相对于其他营销方式,搜索引擎优化更精准,成本相对低得多。可扩展性网站可...

推荐文章

热门文章

相关标签