Android 对DaggerApplicationComponent的未解析引用

Android 对DaggerApplicationComponent的未解析引用,android,kotlin,dagger-2,dagger,kapt,Android,Kotlin,Dagger 2,Dagger,Kapt,我无法处理与Dagger及其组件生成相关的错误 import android.app.Application import dagger.Component @Component(modules = arrayOf(ApplicationModule::class)) interface ApplicationComponent{ fun inject(app: Application) } 调用组件的位置如下所示 class MyAwesomeApplication : Appli

我无法处理与Dagger及其组件生成相关的错误

import android.app.Application
import dagger.Component

@Component(modules = arrayOf(ApplicationModule::class))
interface ApplicationComponent{
    fun inject(app: Application)
}
调用组件的位置如下所示

class MyAwesomeApplication : Application(){
    val component: ApplicationComponent by lazy {
        DaggerApplicationComponent.builder().appModule(ApplicationModule(this)).build()
    }

    override fun onCreate() {
        super.onCreate()
        component.inject(this)
    }
}
在gradle构建文件中,我设置了:

implementation "com.google.dagger:dagger:$dagger_version"
implementation "com.google.dagger:dagger-android:$dagger_version"
implementation "com.google.dagger:dagger-android-support:$dagger_version"
kapt "com.google.dagger:dagger-android-processor:$dagger_version"
此外,存根生成已打开,并且已应用
kotlin kapt

有什么问题吗?

app.gradle

apply plugin: 'kotlin-kapt'

android {
kapt {
  generateStubs = true
}
}

// Dagger 2
implementation "com.google.dagger:dagger:$dagger2_version"
kapt "com.google.dagger:dagger-compiler:$dagger2_version"

Build->Rebuild project

您的
Build.gradle
应该是这样的

apply plugin: 'kotlin-kapt'
…
dependencies {
…
    final dagger_version = '2.17'
    implementation "com.google.dagger:dagger:$dagger_version"
    kapt "com.google.dagger:dagger-compiler:$dagger_version"
    compileOnly 'javax.annotation:javax.annotation-api:1.3.2'
}

我认为您缺少的是
compileOnly'javax.annotation:javax.annotation api:1.3.2'
。我有一个。

对我来说,这是一个渐变依赖性问题。通过在app.gradle脚本中添加以下内容解决了此问题:

apply plugin: 'kotlin-kapt'
.
.
dependencies {
    .
    .
    kapt "com.google.dagger:dagger-compiler:$dagger2_version"
    kapt "com.google.dagger:dagger-android-processor:$dagger2_version"
}

然后,我清理并重建了项目。

经过一段时间,我发现问题在于kapt依赖关系,我一直在使用“dagger android处理器”我应该在哪里使用dagger-Compiler。你也可以发布你的build.gradle文件吗?除了标准的东西,没有其他依赖项和kotlin kapt的存根生成,正如我提到的,缺少的是dagger-Compiler依赖项。@Robert感谢你发布你的答案!而不是评论,请考虑和标记它被接受-它有助于潜在的回答者知道你已经解决了你的问题,并让你获得信用在未来当别人绊倒一个类似的问题。干杯