Hilt Kotlin 中不受支持的元数据版本

Hilt Unsupported metadata version in Kotlin

我试图 运行 我的代码在 Kotlin 1.5.10 中 使用插件作为

plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'

和依赖项如下

dependencies {
    ...
    //Dagger - Hilt
    implementation "com.google.dagger:hilt-android:2.33-beta"
    kapt "com.google.dagger:hilt-android-compiler:2.33-beta"
    implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
    kapt "androidx.hilt:hilt-compiler:1.0.0-beta01"
    implementation 'androidx.hilt:hilt-navigation-compose:1.0.0-alpha01'

    implementation 'com.android.support:palette-v7:28.0.0'

当我迁移到 kotlin_version = "1.5.10" 时,它只是错误地指出

error: [Hilt] Unsupported metadata version. Check that your Kotlin version is >= 1.0: java.lang.IllegalStateException: Unsupported metadata version. Check that your Kotlin version is >= 1.0 at dagger.internal.codegen.kotlin.KotlinMetadata.metadataOf(KotlinMetadata.java:206) at dagger.internal.codegen.kotlin.KotlinMetadata.from(KotlinMetadata.java:186) at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1133) ...

谁能帮帮我?我花了很多时间在上面,你的回答对我有很大帮助

转到https://dagger.dev/hilt/gradle-setup检查 Hilt 当前版本

更新: kotlin:1.6.0兼容hilt:2.40.5,谢谢@Nazanin Nasab

目前 Kotlin 1.5.21 与 Hilt 2.38 兼容。

dependencies {
    ...
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
    classpath "com.google.dagger:hilt-android-gradle-plugin:2.38"
}

一般解决方案 - 在 AS 构建控制台中单击底部的 link - 使用 -stacktrace 参数构建并找到导致错误的注释处理器 (KAPT) - 然后尝试更新依赖项 - 如果你是幸运的新版本应该可用并支持你的 gradle 版本

构建输出中您应该查找的消息

Try:
Run with --stacktrace option to get the stack trace. Run with --info or 
--debug option to get more log output. Run with --scan to get full insights.

我这里也一样。我在 Kotlin 1.5 中使用 dagger:hilt-android:2.33-beta。10.Please 试试这个

项目gradle

implementation "com.google.dagger:hilt-android:2.33-beta"

模块gradle

plugins {
    ...
    id 'dagger.hilt.android.plugin'
}
dependencies {
    ...
    //dagger-hilt
    implementation "com.google.dagger:hilt-android:2.35.1"
    kapt "com.google.dagger:hilt-android-compiler:2.35.1"
}

感谢您的回答,我不得不稍微调整一下才能为我工作,因为我使用的是 Arctic Fox,希望这个回答也能有所帮助

Build.gradle(项目)

buildscript {
ext {
    compose_version = '1.0.0'
}
repositories {
    google()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:7.1.0-alpha05'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.10"
    classpath "com.google.dagger:hilt-android-gradle-plugin:2.37"
}
}

Build.gradle(应用程序)

//Dagger - Hilt
implementation "com.google.dagger:hilt-android:2.34-beta"
kapt "com.google.dagger:hilt-android-compiler:2.34-beta"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
kapt "androidx.hilt:hilt-compiler:1.0.0"
implementation 'androidx.hilt:hilt-navigation-compose:1.0.0-alpha03'

如果有任何解决方案解决了您的问题。转到 https://dagger.dev/hilt/gradle-setup,在 Using Hilt with Kotlin 部分,复制 dependencies 中提到的版本并相应地更新您的 build.gradle

将此行添加到 build.gradle 依赖项对我有帮助:

kapt("org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.3.0")

https://youtrack.jetbrains.com/issue/KT-45885