简而言之,我的问题是我不能在用Kotlin编写的活动中使用GlideApp(生成的API)。 有趣的是Android Studio看到了引用,我可以打开生成的GlideApp,有代码完成,但是当我尝试构建它时,它失败了“Unresolved reference:GlideApp”
glide模块是在java中实现的,因为大多数app都是用java编写的。
有什么想法吗?
答案 0 :(得分:11)
在gradle文件中使用kapt
而不是annotationprocessor
?
V4 Generated API support Kotlin
答案 1 :(得分:5)
对于像我一样使用karandeep建议的kapt
但仍有问题的人 - 你必须创建一个AppGlideModule
实现:
// AppGlidModule.kt
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.module.AppGlideModule
@GlideModule
class AppGlideModule : AppGlideModule()
重建项目后,GlideApp
可以导入(生成代码)。
答案 2 :(得分:4)
在扩展AppGlideModule并添加后仍然面临问题的人
kapt'com.github.bumptech.glide:compiler:4.8.0'
那就别忘了加入
应用插件:“ kotlin-kapt”
在应用程序或模块的顶部 build.gradle
答案 3 :(得分:2)
您可以使用Glide
代替GlideApp
。
Glide.with(context)
.load(image)
.apply(RequestOptions().placeholder(R.drawable.image_placeholder))
.into(imageView);
答案 4 :(得分:0)
要添加Glide应用,您需要添加:
implementation 'com.github.bumptech.glide:glide:4.8.0'
然后您就可以使用
Glide.with(..)
该代码使用默认的Glide。 如果您想自定义Glide,则需要添加
对于Kotlin:
kapt 'com.github.bumptech.glide:annotations:4.9.0'
或对于Java:
annotationProcessor 'com.github.bumptech.glide:annotations:4.9.0'
同步项目后,需要在项目中添加Glide模块类:
@GlideModule
public class CustomGlideModule extends AppGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
//register some components
}
}
重建项目后,将自动生成新的GlideApp类。 现在,您可以将Glide与以下代码结合使用:
GlideApp.with(..)
答案 5 :(得分:0)
使用 Glide
而不是 GlideApp
。
答案 6 :(得分:-1)
好吧,我也有,但是在导入滑行之后它就起作用了 导入com.bumptech.glide.glide