【问题标题】:Expected @AndroidEntryPoint to have a value. Did you forget to apply the Gradle Plugin?预期 @AndroidEntryPoint 有一个值。您是否忘记应用 Gradle 插件?
【发布时间】:2020-06-28 07:49:00
【问题描述】:

当我在带有Room 的android 中使用Hilt 时,我遇到了这个错误。

完整的日志在这里:

home/someone/Desktop/Calculator/app/build/tmp/kapt3/stubs/debug/com/hamidjonhamidov/calculator/MyApplication.java:7: error: [Hilt]
public class MyApplication extends android.app.Application {
       ^
  Expected @HiltAndroidApp to have a value. Did you forget to apply the Gradle Plugin?
  [Hilt] Processing did not complete. See error above for details./home/someone/Desktop/Calculator/app/build/tmp/kapt3/stubs/debug/com/hamidjonhamidov/calculator/ui/main/MainActivity.java:7: error: [Hilt]

有人知道解决办法吗?

【问题讨论】:

    标签: android dagger-hilt


    【解决方案1】:

    我在将 Kotlin 升级到 1.5.20 后遇到了这个问题。
    在 gradle.properties 中添加 kapt.use.worker.api=false 对我有用
    结帐dagger issue Support for Kotlin 1.5.20

    【讨论】:

    【解决方案2】:

    幸运的是,有一个简单的解决方案。 在数据库方案的build.gradle中,我们应该使用arguments +=而不是arguments =

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

    或者/和在buld.gradle 你应该应用插件,如: apply plugin 'dagger.hilt.android.plugin'

    这解决了问题)

    【讨论】:

    • 你用“+=”救了我的命,非常感谢。
    • 不客气)
    【解决方案3】:

    更新

    将 Hilt 升级到 v28.1.0 并将 Kotlin 升级到 v1.5.21 应该可以解决此问题

    旧答案

    如果您使用的是 kotlin 1.5.20,Mr-wil 的回答将降低构建速度,如official doc 所述:

    要提高使用 kapt 的构建速度,您可以启用 用于 kapt 任务的 Gradle 工作者 API。使用 worker API 让 Gradle 运行 来自单个项目的独立注释处理任务 并行,在某些情况下会显着降低执行 时间。

    相反,设置:

    kapt {
        javacOptions {
            // These options are normally set automatically via the Hilt Gradle plugin, but we
            // set them manually to workaround a bug in the Kotlin 1.5.20
            option("-Adagger.fastInit=ENABLED")
            option("-Adagger.hilt.android.internal.disableAndroidSuperclassValidation=true")
        }
    }
    

    source

    【讨论】:

      【解决方案4】:

      此一般错误消息也可能出现在许多情况下。作为更通用的检查,确保您的模块的 build.gradle 文件,确保您有:

      apply plugin: 'dagger.hilt.android.plugin'

      在顶部。

      【讨论】:

        【解决方案5】:

        这是由于 Kotlin 1.5.20 中的 bug。在 Kotlin 1.5.21 中是 fixed

        所以您需要做的就是升级到最新版本的 Kotlin。

        【讨论】:

        • 更新到 kotlin 1.5.21 和 hilt 2.37 并不能解决问题
        • 它解决了我的问题,谢谢
        • 它解决了我的问题,谢谢
        【解决方案6】:

        我遇到了同样的问题,似乎 kotlin-kapt 插件有问题。如果你们已经尝试了以上所有答案但没有得到解决,请在依赖项{}块之外的 build.gradle(module-level) 中尝试以下代码

        kapt {
            javacOptions {
                option("-Adagger.hilt.android.internal.disableAndroidSuperclassValidation=true")
            }
        }
        

        【讨论】:

        • 谢谢,我修好了
        【解决方案7】:

        在您的 Android Gradle 模块的 build.gradle 中应用插件:

        apply plugin: 'com.android.application'
        apply plugin: 'dagger.hilt.android.plugin'
        
        android {
          // ...
        }
        

        查看详情here

        【讨论】:

          【解决方案8】:

          在我的情况下,它通过声明插件来解决:

          plugins {
              id("dagger.hilt.android.plugin")
          }
          

          【讨论】:

            【解决方案9】:

            我在 2022 年仍然面临同样的问题

            我已经通过添加解决了这个问题

            classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1'
            

            build.gradle项目并添加

            id 'dagger.hilt.android.plugin'
            

            build.gradle 应用中的插件

            【讨论】:

              猜你喜欢
              • 2020-11-03
              • 1970-01-01
              • 1970-01-01
              • 2022-11-10
              • 2016-11-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多