web-dev-qa-db-ja.com

Android Kotlin:未解決の参照エラー:DaggerAppComponent

今日、Dagger 2を使用して既存のプロジェクトにKotlinプラグインをインストールしました。Kotlinをインストールする前は、Daggerに問題はありませんでした。ただし、現在コンパイラーは不平を言っています:

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

プロジェクトのグラドル:

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"

モジュールのグラドル:

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"


}

DaggerAppComponentファイルIS自動生成されたため、未解決の参照エラーがスローされる理由について混乱しています。

20
Mike6679
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-kapt'   

そしてあなたの依存関係で:

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"
50
Pablo Cegarra

同じエラーメッセージが表示されましたが、私のケースはあなたのものとは異なりました。未解決の参照は、署名済みAPKを生成するときにのみ表示されました。これは私がそれを解決した方法です:

app/build.gradle

kapt {
    generateStubs = true
}

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

エラーなしで署名済みAPKをデプロイできるようになりました

17
voghDev

ここのこのプロジェクトは、私を正しい軌道に乗せるのに役立ちました: https://github.com/damianpetla/kotlin-dagger-example

1
Mike6679

最初は、再構築後にエラーが発生します:

未解決の参照:DaggerAppComponent

そのコンポーネントをインポート(Alt + Enter)する必要があります。

0
zgr