错误:找不到符号 | 类ApplicationComponent

4

我正在尝试在我的项目中使用Hilt注入。我将依赖项添加到了我的build.gradle文件中,然后创建了基础应用程序类。这个类继承自Application(),并用@HiltAndroidApp进行注释。做完这些后,我继续重建项目以便Hilt生成文件,但是出现了以下错误。

D:\AndroidStudioProjects\testing\app\build\generated\source\kapt\debug\com\example\testing\BaseApplication_GeneratedInjector.java:4: error: cannot find symbol
import dagger.hilt.android.components.ApplicationComponent;
                                     ^
  symbol:   class ApplicationComponent
  location: package dagger.hilt.android.componentsD:\AndroidStudioProjects\testing\app\build\generated\source\kapt\debug\com\example\testing\BaseApplication_GeneratedInjector.java:12: error: cannot find symbol

我的 build.gradle 文件:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'dagger.hilt.android.plugin'
    id 'kotlin-kapt'
}
...
    implementation "com.google.dagger:dagger:2.31"
    kapt "com.google.dagger:dagger-compiler:2.28"

    // Dagger Android
    api 'com.google.dagger:dagger-android:2.28.1'
    api 'com.google.dagger:dagger-android-support:2.28.1'
    kapt 'com.google.dagger:dagger-android-processor:2.23.2'

    implementation "com.google.dagger:hilt-android:2.31-alpha"
    kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"

    implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
    kapt "androidx.hilt:hilt-compiler:1.0.0-alpha03"

我的 build.gradle(项目名称)

dependencies {
        classpath "com.android.tools.build:gradle:4.1.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "com.google.dagger:hilt-android-gradle-plugin:2.28-alpha"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

我的BaseApplication类:

package com.example.testing

import android.app.Application
import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class BaseApplication: Application() {
}

这些依赖项有不同的版本,请使用“implementation”。 - Martin Zeitler
3个回答

7
将您的dagger-hilt依赖项升级到相同的版本。
项目根gradle文件:
classpath "com.google.dagger:hilt-android-gradle-plugin:2.31.2-alpha"
您的应用程序级gradle文件:
implementation "com.google.dagger:hilt-android:2.31.2-alpha" kapt "com.google.dagger:hilt-android-compiler:2.31.2-alpha"

6

ApplicationComponent替换为SingletonComponent

(解释:

参见错误: 找不到符号 @dagger.hilt.InstallIn(value = {ApplicationComponent.class})

我遇到了这个构建错误:

)
@dagger.hilt.InstallIn(value = {ApplicationComponent.class})
                                ^
  symbol: class ApplicationComponenterror: [Hilt]
  @InstallIn, 'value' class is invalid or missing: @dagger.hilt.InstallIn({<error>})
  [Hilt] Processing did not complete. See error above for details.

Dagger Hilt 版本 2.31 中删除了 ApplicationComponent


4

ApplicationComponent从2.33-beta版本起更名为SingletonComponent


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接