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”时,它只是错误地声明

错误: [ Hilt ] 不支持的元数据版本。检查 Kotlin 版本是否 > = 1.0: java.lang。IllegalStateException: 不支持的元数据版本。检查 Kotlin 版本是否 > = 1.0 在 dagger.interal.codegen.kotlin. KotlinMetadata.metadataOf (KotlinMetadata.java: 206) 来自(KotlinMetadata.java: 186)的链接: dagger.interal.codegen.kotlin. KotlinMetadata.from (KotlinMetadata.java: 186) Java.base/java.util. HashMap.computeIfAbsent (HashMap.java: 1133) ...

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

44145 次浏览

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

更新: 现在,您可以使用最新版本。

Kotlin:1.7.0Hilt:2.42

更新: 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.7.0"
classpath "com.google.dagger:hilt-android-gradle-plugin:2.42"
}

通用解决方案-在 AS 构建控制台点击链接在底部-构建与 -stacktrace参数,并找到哪个注释处理器(KAPT)是造成错误-然后尝试更新依赖-如果你是幸运的新版本应该是可用的,并支持您的等级版本

应该查找的生成输出中的消息

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.

我在这里得到了相同的。我使用匕首: 柄-机器人: 2.33-测试版与 Kotlin 1.5.10。请试试这个

项目级别

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

模组梯级

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

谢谢你的回答,我不得不做一个轻微的调整,以便为我的工作,因为我正在使用北极狐,希望这个答案将有所帮助

Grale (project)

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

Gradle (app)

//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,在 与 Kotlin 一起使用 Hilt部分,复制 dependencies中提到的版本并相应地更新你的 build.gradle

将这一行添加到 build.gradle 依赖项帮助了我:

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

Https://youtrack.jetbrains.com/issue/kt-45885

我得到了同样的错误。我改变了两个档案,它为我工作。

格拉德计划

plugins {
   

//    dependencies for dagger hilt
id 'com.google.dagger.hilt.android' version '2.42' apply false


}

模组级别

dependencies {


implementation 'com.google.dagger:hilt-android:2.42'
kapt 'com.google.dagger:hilt-compiler:2.42'
implementation("androidx.hilt:hilt-navigation-fragment:1.0.0")


}

对于 Kotlin 1.7.10,您只需要将 hilt 版本设置为2.42。

在我的例子中,问题出现在我在依赖项中指定的不同版本中。

  • 类路径中的“2.40”“ com.google.匕首: hilt-android-gradle-plugin”
    还有
  • “2.43.2”的实现“ com.google.匕首: hilt-android”

在升级 kotlin-gradle-plugin:1.7.x以满足 compose的要求时,我遇到了一个问题。我将它们还原为 org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21kotlinCompilerExtensionVersion

composeOptions {
kotlinCompilerExtensionVersion compose_version
}

扩展版本

在 Project-level build.gradle change hilt 版本中

id 'com.google.dagger.hilt.android' version '2.44' apply false

在应用程序级别的 build. gradle 中

implementation "com.google.dagger:hilt-android:2.44"
kapt "com.google.dagger:hilt-compiler:2.44"