【问题标题】:Hilt Unsupported metadata version in KotlinHilt Kotlin 中不支持的元数据版本
【发布时间】:2021-05-28 18:35:07
【问题描述】:

我试图在 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" 时,它只是错误地指出

错误:[刀柄] 不受支持的元数据版本。检查您的 Kotlin 版本是否 >= 1.0:java.lang.IllegalStateException:不支持的元数据版本。检查您的 Kotlin 版本是否 >= 1.0 在 dagger.internal.codegen.kotlin.KotlinMetadata.metadataOf(KotlinMetadata.java:206) 在 dagger.internal.codegen.kotlin.KotlinMetadata.from(KotlinMetadata.java:186) 在 java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1133) ...

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

【问题讨论】:

  • 尝试将所有刀柄库更新到最新版本
  • 试过了,还是一样的问题
  • 将您的 Hilt 版本更新到最新版本(目前为 2.36)
  • 它不适合我

标签: android-studio kotlin mobile android-jetpack-compose dagger-hilt


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答,升级刀柄库有时是一场噩梦。
  • 这些版本也适用于我: kotlin:1.6.0 , hilt:2.40.5
【解决方案2】:

感谢您的回答,因为我使用的是北极狐,所以我不得不做一些细微的调整才能为我工作,希望这个答案也会有所帮助

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'

【讨论】:

    【解决方案3】:

    一般解决方案 - 在 AS 构建控制台中单击底部的链接 - 使用 -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.
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      • 这是解决最新SDK错误的正确方法
      【解决方案5】:

      我在这里也一样。我在 Kotlin 1.5.10 中使用 dagger:hilt-android:2.33-beta。请试试这个

      项目分级

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

      【讨论】:

        猜你喜欢
        • 2022-11-12
        • 2022-11-25
        • 2022-10-13
        • 2021-06-20
        • 1970-01-01
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 2021-04-12
        相关资源
        最近更新 更多