El module de Dagger no funciona después de la conversión de Java a Kotlin

Creé una aplicación simple para Android con Dagger 2. Tiene un object compartido y un module. El module es:

@Module public class MyModule { @Provides @Singleton public Hren providesHren() { return new Hren(); } } 

Este modulo funciona Pero cuando lo convierto en Kotlin, obtengo un error de time de compilation:

 > 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 

Este module después de la conversión:

 @Module class MyModule { @Provides @Singleton fun providesHren(): Hren { return Hren() } } 

¿Qué pasa? ¿Por qué me sale este error? ¿Cómo resolver?

Asegúrese de haber configurado correctamente su proyecto para admitir annotations con Kotlin.

En su build.gradle(Module:app) , verifique que haya aplicado la siguiente configuration:

  • aplicar el complemento: 'kotlin-kapt'
  • kapt "com.google.dagger: dagger-compiler: dagger_version"
  • kapt "com.google.dagger: dagger-android-processor: dagger_version"

Luego, limpia y reconstruye tu proyecto:

  • ./gradlew clean && ./gradlew build
  • ¿Qué significa `impl` en Kotlin?
  • ¿La documentation de Kotlin es correcta?
  • Cómo crear una list con un argumento genérico en Kotlin
  • Procesamiento de annotations de Kotlin: ¿es posible generar un método de extensión?
  • Kotlin: deshacerse de los moldes sin marcar para Comparable
  • Llamar a un constructor por defecto desde otro en Kotlin
  • Genéricos de Kotlin: Aplicación de una interfaz para MVP
  • Convertir la function de raíz imperativa en estilo funcional en kotlin
  • Cómo mostrar datos usando la vista de tree de TornadoFX
  • ¿Proporciona Kotlin alguna implementación de sus interfaces de colección?
  • ¿Debo cancelar la suscripción cuando uso rxbinding?