kotlin與dagger2問題:Unresolved reference: DaggerMainComponent
阿新 • • 發佈:2018-12-11
kotlin專案整合dagger2時遇到:
E:\Users\lenovo\MyDagger2\app\src\main\java\com\xq\mydagger2\MainActivity.kt
Error:(22, 9) Unresolved reference: DaggerMainComponent
Error:Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details
檢視gradle console:
Parallel execution with configuration on demand is an incubating feature. app: 'androidProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'com.google.dagger:dagger-compiler:2.10' and apply the kapt plugin: "apply plugin: 'kotlin-kapt'".
解決:
將
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 26 defaultConfig { applicationId "com.xq.mykotlin" minSdkVersion 14 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } configurations.all { resolutionStrategy.force 'com.android.support:support-annotations:26.1.0' } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.google.dagger:dagger:2.17' annotationProcessor 'com.google.dagger:dagger-compiler:2.17' //java中用annotationProcessor }
改成:
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' //新增 android { compileSdkVersion 26 defaultConfig { applicationId "com.xq.mydagger2" minSdkVersion 14 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } configurations.all { resolutionStrategy.force 'com.android.support:support-annotations:26.1.0' } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.google.dagger:dagger:2.17' // annotationProcessor 'com.google.dagger:dagger-compiler:2.17' kapt 'com.google.dagger:dagger-compiler:2.17' //將annotationProcessor改成kapt //kotlin用kapt }