从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() } } 

怎么了? 为什么我得到这个错误? 怎么解决?

One Solution collect form web for “从Java转换到Kotlin之后,Dagger的模块不工作”

确保您已经正确配置了您的项目,以支持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
  • Kotlin无法访问受保护的抽象方法
  • 什么可以在编译时常量(const val)中expression?
  • 包在kotlin保护替代
  • 如何使用Android Kotlin在WebView中加载URL?
  • 有没有官方的Kotlin风格指南?
  • kotlin限定符注释被忽略
  • 如何使用kotlin将layoutmanager设置为RecycleView
  • 运行Spek测试显示错误“空测试套件”
  • Kotlin列表EnumMap与总和
  • 如何在Kotlin的字符串中替换重复的空格?
  • 在Kotlin中的片段类之间切换
  • Kotlin language will be the best programming language for Android.