Android 匕首';s模块没有';在从Java转换到Kotlin后无法工作

Android 匕首';s模块没有';在从Java转换到Kotlin后无法工作,android,kotlin,dagger,Android,Kotlin,Dagger,我用Dagger 2为Android创建了一个简单的应用程序。它有一个共享对象和一个模块。该模块是: @Module public class MyModule { @Provides @Singleton public Hren providesHren() { return new Hren(); } } 这个模块可以工作。但是,当我将其转换为Kotlin时,会出现编译时错误: > Task :app:compileDebugJavaW

我用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(模块:app)
文件中,检查是否应用了以下设置:

  • 应用插件:“kotlin kapt”
  • kapt“com.google.dagger:dagger编译器:dagger_版本”
  • kapt“com.google.dagger:dagger android处理器:dagger_版本”
然后,清理并重建项目:

  • ./gradlew清洁和&./gradlew建造

确保已正确配置项目以支持Kotlin的注释

build.gradle(模块:app)
文件中,检查是否应用了以下设置:

  • 应用插件:“kotlin kapt”
  • kapt“com.google.dagger:dagger编译器:dagger_版本”
  • kapt“com.google.dagger:dagger android处理器:dagger_版本”
然后,清理并重建项目:

  • ./gradlew清洁和&./gradlew建造

你清理了项目并重建了吗?你清理了项目并重建了吗?是的,我忘记了
annotationProcessor
仅适用于Java源代码,对于Kotlin,我需要
kapt
。谢谢。是的,我忘记了
annotationProcessor
仅适用于Java源代码,对于Kotlin,我需要
kapt
。非常感谢。