1

我无法处理与 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已应用

有什么想法有什么问题吗?

4

4 回答 4

1

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'. 我有一篇关于设置 Dagger 的详细步骤的文章。

于 2018-10-24T19:24:51.143 回答
0

对我来说,这是一个 gradle 依赖问题。通过将以下内容添加到 app.gradle 脚本来解决它:

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

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

于 2020-06-30T10:53:58.410 回答
0

应用程序.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"

构建 -> 重建项目

于 2018-10-24T14:23:21.677 回答
0
For me its because of dagger version. By using the below version resolved the issue for me.

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
}

dagger_version = '2.17'
    implementation "com.google.dagger:dagger:$dagger_version"
    kapt "com.google.dagger:dagger-compiler:$dagger_version"
于 2021-08-29T15:38:39.353 回答