相关疑难解决方法(0)

未解决的参考DaggerApplicationComponent

我正在尝试创建我的应用程序组件,但Dagger不会生成我的应用程序组件.这是MyApplication

class MyApplication : Application() {

companion object {
    @JvmStatic lateinit var graph: ApplicationComponent
}
@Inject
lateinit var locationManager : LocationManager

override fun onCreate() {
    super.onCreate()
    graph = DaggerApplicationComponent.builder().appModule(AppModule(this)).build()
    graph.inject(this)
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的AppComponent

@Singleton
@Component(modules = arrayOf(AppModule::class))
interface ApplicationComponent {
    fun inject(application: MyApplication)
}
Run Code Online (Sandbox Code Playgroud)

这是截图 在此输入图像描述

这是我在github上的项目

这是错误日志

Error:(7, 48) Unresolved reference: DaggerApplicationComponent
Error:(28, 17) Unresolved reference: DaggerApplicationComponent
Error:Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details
Information:BUILD FAILED
Information:Total time: …
Run Code Online (Sandbox Code Playgroud)

android kotlin dagger-2

35
推荐指数
6
解决办法
2万
查看次数

不推荐使用 ApplicationComponent 吗?

我刚开始在 Android 上使用 Dagger Hilt 进行依赖注入,我在 Android Studio 上收到一条警告说'ApplicationComponent' is deprecated. Deprecated in Java.

我在谷歌搜索时没有找到与此警告相关的任何内容,它实际上已被弃用还是使用安全?

我还在 Dagger 的网站上注意到他们没有在“迁移到刀柄”指南中的任何地方提及它,他们使用的@InstallIn(SingletonComponent::class)似乎有效,但我不知道为什么。

android dagger dagger-hilt

33
推荐指数
2
解决办法
5830
查看次数

错误:找不到符号 | 应用程序组件类

我正在尝试在我的项目中使用 Hilt 注入。我将依赖项添加到我的 build.gradle 文件中,然后创建了基础应用程序类,该类继承自 Applcication() ,并用 @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
Run Code Online (Sandbox Code Playgroud)

我的 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"
Run Code Online (Sandbox Code Playgroud)

我的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 …
Run Code Online (Sandbox Code Playgroud)

android dagger-2 dagger-hilt

4
推荐指数
2
解决办法
5273
查看次数

标签 统计

android ×3

dagger-2 ×2

dagger-hilt ×2

dagger ×1

kotlin ×1