我使用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()
}
}
怎么了?为什么我会收到此错误?怎么解决?
答案 0 :(得分:2)
确保您已正确配置项目以支持使用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