未解决的参考文献:GlideApp用Koltin编写的活动

时间:2018-02-09 13:51:00

标签: android kotlin android-glide

简而言之,我的问题是我不能在用Kotlin编写的活动中使用GlideApp(生成的API)。 有趣的是Android Studio看到了引用,我可以打开生成的GlideApp,有代码完成,但是当我尝试构建它时,它失败了“Unresolved reference:GlideApp”

glide模块是在java中实现的,因为大多数app都是用java编写的。

有什么想法吗?

7 个答案:

答案 0 :(得分:11)

在gradle文件中使用kapt而不是annotationprocessorV4 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可以导入(生成代码)。

更多this medium post

答案 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