android - example - retrofit dagger 2
Android Kotlin: Error Sin resolver referencia: DaggerAppComponent (4)
Estaba teniendo el mismo problema, pero mi caso era diferente al tuyo. La referencia no resuelta apareció solo al generar APK firmado. Así lo resolví:
app / build.gradle
kapt {
generateStubs = true
}
dependencies {
//...
implementation ''com.google.dagger:dagger:2.9''
kapt ''com.google.dagger:dagger-compiler:2.9''
}
Ahora puedo desplegar mi APK firmado sin errores
He instalado el complemento Kotlin hoy en un proyecto existente con Dagger 2. Antes de instalar Kotlin no tuve problemas con Dagger. Sin embargo, ahora el compilador se queja:
Error:(5, 32) Unresolved reference: DaggerAppComponent
Error:Execution failed for task '':app:compileDebugKotlinAfterJava''.
> Compilation error. See log for more details
Error:(12, 21) Unresolved reference: DaggerAppComponent
Proyecto gradle:
ext.kotlin_version = ''1.1.1''
repositories {
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:2.2.2''
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
Módulo gradle:
kapt {
generateStubs = true
}
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', {
exclude group: ''com.android.support'', module: ''support-annotations''
})
compile ''com.android.support:appcompat-v7:25.0.1''
testCompile ''junit:junit:4.12''
compile ''com.google.dagger:dagger:2.7''
kapt ''com.google.dagger:dagger-compiler:2.7''
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
El archivo DaggerAppComponent se genera automáticamente, por lo que estoy confundido en cuanto a por qué se produce un error de referencia no resuelto.
Este proyecto aquí me ayudó a encontrar el camino correcto: https://github.com/damianpetla/kotlin-dagger-example
No utilice el dive para inyectar privado en Kotlin, utilícelo así para Kotlin
@Inject
internal lateinit
apply plugin: ''kotlin-android''
apply plugin: ''kotlin-kapt''
Y en tus dependencias:
implementation "com.google.dagger:dagger:2.x"
implementation "com.google.dagger:dagger-android:2.x"
implementation "com.google.dagger:dagger-android-support:2.x"
kapt "com.google.dagger:dagger-compiler:2.x"
kapt "com.google.dagger:dagger-android-processor:2.x"