51

Google でこの問題を解決しましたが、結果がうまくいきません。

詳細は以下の通り。

    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)

}


このモジュール gradle ファイル。

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"]
}

誰がアイデアを持っていますか?ありがとう!

4

6 に答える 6

59

編集: kotlin gradle プラグイン 1.5.21 は、次の javacOptions を使用せずに問題を解決するようです。Kotlin を更新して、もう一度お試しください。

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"

Room を使用していないにもかかわらずエラーが発生する場合は、これを build.gradle の android ブロックに入れます。

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")
    }
}

これは kotlin 1.5.20 の kapt バグです: https://github.com/google/dagger/issues/2684

于 2021-06-26T10:33:55.363 に答える