使用LibraryGlideModule时找不到GlideApp(Glide 4)

6

使用Glide 4与okhttp3和LibraryGlideModule相结合:

@GlideModule
public final class MyGlideModule extends LibraryGlideModule {

    @Override
    public void registerComponents(Context context, Glide glide, Registry registry) {
        registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory());
    }
}

当构建时,GlideApp 类未生成,但当我扩展 AppGlideModule 时会生成。使用 LibraryGlideModule,则根本没有生成 Glide 类。

我做错了什么吗?


我正在图书馆工作,而不是应用项目。 - Frank
2
我现在最终使用了AppGlideModule。 - Frank
请遵循此文档 http://bumptech.github.io/glide/doc/getting-started.html#applications - Rohan Pawar
@Frank,我不理解LibraryGlideModule的目的。这个类的方法从未被调用过。我也是。我必须切换到AppGlideModule。 - Tony
7个回答

15
Glide v4使用注解处理器生成API。这使得应用程序可以扩展Glide的API,并包含由集成库提供的组件。
要在Android项目中生成GlideApp API,请执行以下操作:
在Android Studio中:
- 单击"Build"菜单 - 单击"Make Module "以生成特定于项目的GlideApp类。 - 如果不起作用,请使用"Make Project"重新构建项目。

8
  1. 您需要创建一个名为MyAppGlideModule的新类,并将其扩展为AppGlideModule

请参考以下代码:

import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
// new since Glide v4
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {
    // leave empty for now
}
  1. 构建 -> 构建项目

3

3
如果GlideAPP无法生成
注意:annotationProcessor com.github.bumptech.glide:compiler:4.9.0必须与AppGlideModule Implementation class在同一个模块中。 enter image description here

3

GlideApp类无法生成的另一个原因可能是项目中存在其他错误。所以,如果您已经添加了

annotationProcessor "com.github.bumptech.glide:compiler:${rootProject.ext.glideVersion}"

首先,需要引用相关依赖,并且创建一个继承于AppGlideModule类的类,并且正确注释上@GlideModule。接下来在Android Studio的Build视图中向下滚动查看是否有错误出现,除了找不到GlideApp之外,其他情况都应该避免。


1
如果您使用Kotlin,请尝试使用kapt代替annotationProcessor

0

@Abbas的答案添加视觉信息,

如果构建错误停在这样一个位置: enter image description here

向上查看并查看此错误: enter image description here

在我的情况下,它指出了一个Room Db错误,修复后也修复了这个错误(找不到GlideApp)。

因此,首先修复顶层错误,然后再尝试运行应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接