Referencia no resuelta DaggerApplicationComponent

Intento crear mi componente de aplicación, pero Dagger no genera mi componente de aplicación. aquí está la class MyApplication

class MyApplication : Application() { companion object { @JvmStatic lateinit var graph: ApplicationComponent } @Inject lateinit var locationManager : LocationManager override fun onCreate() { super.onCreate() graph = DaggerApplicationComponent.builder().appModule(AppModule(this)).build() graph.inject(this) } } 

y aquí está mi class AppComponent

 @Singleton @Component(modules = arrayOf(AppModule::class)) interface ApplicationComponent { fun inject(application: MyApplication) } 

aquí está la captura de pantalla enter image description here

este es mi proyecto en github

aquí está el logging de errores

 Error:(7, 48) Unresolved reference: DaggerApplicationComponent Error:(28, 17) Unresolved reference: DaggerApplicationComponent Error:Execution failed for task ':app:compileDebugKotlin'. > Comstacktion error. See log for more details Information:BUILD FAILED Information:Total time: 21.184 secs Error:e: .../MyApplication.kt: (7, 48): Unresolved reference: DaggerApplicationComponent e: Unresolved reference: DaggerApplicationComponent FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileDebugKotlin'. > Comstacktion error. See log for more details * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Information:4 errors Information:0 warnings Information:See complete output in console 

Intente habilitar la generación de stubs , esta podría ser la razón por la cual la class no está visible en esta etapa del process de compilation. En tu file build.gradle , nivel superior:

 kapt { generateStubs = true } 

mi solución es agregar

 apply plugin: 'kotlin-kapt' 

y eliminar

 kapt { generateStubs = true } 

Esto me ayudó a solucionar este problema

Agregue esto en la parte superior de build.gradle

 apply plugin: 'kotlin-kapt' 

Dentro de la label de android agregar

 kapt { generateStubs = true } 

Y luego reemplace

 annotationProcessor 'com.google.dagger:dagger-compiler:2.11' 

a

 kapt 'com.google.dagger:dagger-compiler:2.11' 

Ahora Rebuild el proyecto

 Build -> Rebuild project 

Ya descargué tu proyecto Github. ¡Gracias por compartir!

La respuesta para tu problema es bastante simple:

 Build -> Rebuild project 

Los files de dependencies Dagger se recrearán y la aplicación después se lanzará con cualquier problema.

Ya he comprobado esto con la versión de Android Studio 2.1.2. Funciona

debes eliminar

 kapt { generateStubs = true} 

y agregue a la parte superior del file gradle de la aplicación

 apply plugin: 'kotlin-kapt' 

entonces Dagger se encargará del rest 🙂

Intenta agregar esto a tu build.gradle

 android { dexOptions { incremental false } 

EDITAR: aparentemente un año más tarde esto puede suceder si no kotlin-kapt plugin kotlin-kapt . También asegúrese de usar kapt lugar de annotationProcessor .

  • ¿Por qué `como` en Kotlin no echó en este caso
  • Configuración de un proyecto multiplataforma
  • Kotlin Objetos de carga demorada
  • kotlin coroutine y la relación entre el manejador principal
  • Kotlin y Proguard
  • ¿Hay alguna manera de identificar una class de datos Kotlin de una class regular de Kotlin?
  • retryWhen () no llama a lo que está dentro de Observable.just ()
  • Clase abstracta Kotlin java IllegalAccessError
  • Obtenga un hilo extra de la actividad de Kotlin
  • Gradle Build falla con el nuevo Gradle 3.0.0
  • Uso de la expansión de propiedad Gradle en Kotlin / Spring Boot