当前位置: 首页 > 知识库问答 >
问题:

@HiltAndroidApp应有值。你忘了应用Gradle插件了吗?

万俟招
2023-03-14

我有谷歌这个问题,但结果不是为我工作。

    public final class App extends com.zhixin.wedeep.common.BaseApplication implements androidx.lifecycle.LifecycleOwner {
                 ^
     // Expected @HiltAndroidApp to have a value. Did you forget to apply the Gradle Plugin?

@HiltAndroidApp
class App : BaseApplication(), LifecycleOwner {

    @Inject
    lateinit var service: EventService


    private val mLifecycleRegistry = LifecycleRegistry(this)

}


apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-allopen'
apply plugin: 'androidx.navigation.safeargs.kotlin'
apply plugin: 'dagger.hilt.android.plugin'

dependencies {
    implementation rootProject.ext.dependencies["hilt-android"]
    implementation rootProject.ext.dependencies["hilt-lifecycle-viewmodel"]
    kapt rootProject.ext.kapt["hilt-compiler"]
    kapt rootProject.ext.kapt["hilt-android-compiler"]
}

谁有想法?谢谢!

共有1个答案

夹谷和裕
2023-03-14

我今早刚碰到这个问题。您的Build.Gradle中是否有向AnnotationProcessOptions添加参数的内容?例如:

  android {
        ...
        defaultConfig {
            ...
            javaCompileOptions {
                annotationProcessorOptions {
                    arguments = ["room.schemaLocation":
                                 "$projectDir/schemas".toString()]
                }
            }
        }
    }

如果是的话,试着从“arguments=”更改为“arguments+=”,因为仅仅使用equals就会覆盖之前设置的任何内容。

 类似资料:
  • 正如你所看到的,我做的每件事都是正确的,但它仍然给我带来了错误。我在另一台计算机上测试了我的代码,它起作用了!我甚至从我的电脑上删除了android studio,Gradle和SDK manager并重新安装它们,但它仍然给我错误。我该怎么修好它?

  • 完整的日志在这里: 有人知道解决办法吗?

  • 插件需要声明被应用,通过Project.apply()方法完成.应用的插件是idempotent注1,即相同的插件可以应用多次.如果插件先前以被应用,任何后来的应用是安全的,不会有任何影响的. [1]译注:英文直接翻译的意思是幂等(denoting an element of a set that is unchanged in value when multiplied or otherwise

  • 我有一个问题实现Hilt在android应用程序... 错误是: 预期@HiltAndroidApp具有值。你忘了应用Gradle插件吗? gradle项目文件 gradle文件模型

  • 我不明白gradle插件块 和其他一个: 在第一个块中,我们有一些插件名称。在第二个一个包和版本。我不明白应该在哪里使用第一个块,什么时候使用第二个块。

  • 嗨,我试图用gradle设置我的intelliJ。 IntelliJ创建并使用项目。中的iml。idea \模块目录。 当我将gradle与idea插件一起使用时,它会生成一个项目。项目根目录中的iml。如何说服gradle插件使用正确的iml文件? 我使用Gradle 3.5和IntelliJ 2017.1.4