从Java转换到Kotlin之后,Dagger的模块不工作
我用Dagger 2为Android创建了简单的应用程序。它有一个共享对象和一个模块。 该模块是:
@Module public class MyModule { @Provides @Singleton public Hren providesHren() { return new Hren(); } }
这个模块工作。 但是当我将它转换为Kotlin时,我得到编译时错误:
> Task :app:compileDebugJavaWithJavac ...../DaggerMyApplicationComponent.java:26: error: cannot find symbol DoubleCheck.provider(MyModule_ProvidesHrenFactory.create(builder.myModule)); ^ symbol: variable MyModule_ProvidesHrenFactory location: class DaggerMyApplicationComponent 1 error
转换后的这个模块:
@Module class MyModule { @Provides @Singleton fun providesHren(): Hren { return Hren() } }
怎么了? 为什么我得到这个错误? 怎么解决?
确保您已经正确配置了您的项目,以支持Kotlin的注释。
在你的build.gradle(Module:app)
文件中,检查你是否应用了以下设置:
- 套用插件:’kotlin-kapt’
- kapt“com.google.dagger:dagger-compiler:dagger_version”
- kapt“com.google.dagger:dagger-android-processor:dagger_version”
然后,清理并重建您的项目:
- ./gradlew clean && ./gradlew build