2017-03-16 36 views
10

Mam zainstalowaną wtyczkę Kotlin dzisiaj w istniejącym projekcie z Dagger 2. Przed zainstalowaniem Kotlin nie miałem żadnych problemów z Dagger. Teraz jednak, gdy kompilator narzeka: GradleAndroid Kotlin: Błąd Nierozwiązane odniesienie: DaggerAppComponent

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 

Projekt:

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" 

Moduł 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" 


} 

Plik DaggerAppComponent jest automatycznie generowany, więc jestem zdezorientowany, dlaczego nie to zgłoszony błąd referencyjny nierozstrzygnięty.

+0

rozwiązujesz problem? co było nie tak? –

+0

Otwórz 'Gradle Console', a następnie kliknij, aby uruchomić z --stacktrace, aby wyświetlić więcej logów (więcej szczegółów na temat błędu) – Sally

Odpowiedz

13

miałem ten sam problem, ale mój przypadek był inny niż twój. Nierozwiązane odniesienie pojawiło się tylko podczas generowania podpisanego pliku APK. W ten sposób mogę rozwiązać go:

app/build.gradle

kapt { 
    generateStubs = true 
} 

dependencies { 
    //... 
    compile 'com.google.dagger:dagger:2.9' 
    kapt 'com.google.dagger:dagger-compiler:2.9' 
} 

mogę teraz wdrożyć mojej podpisany APK bez błędów

18
apply plugin: 'kotlin-android' 
apply plugin: 'kotlin-kapt' 

iw swoim zależności:

compile "com.google.dagger:dagger:2.11" 
compile "com.google.dagger:dagger-android:2.11" 
compile "com.google.dagger:dagger-android-support:2.11" 
kapt "com.google.dagger:dagger-compiler:2.11" 
kapt "com.google.dagger:dagger-android-processor:2.11"