元数据版本不受支持。检查您的 Kotlin 版本是否 >= 1.0:java.lang.IllegalStateException

Has*_*cuk 26 android kotlin dagger-hilt

我将 Kotlin 版本从 1.6.10 更改为 1.7.0。

由此

 implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10'
Run Code Online (Sandbox Code Playgroud)

升级到

 implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0'
Run Code Online (Sandbox Code Playgroud)

希尔特抛出了一个错误。我的Hilt版本是2.42。有没有办法解决这个问题而无需再次降级?它在Kotlin 1.6.10Hilt 2.42中运行良好。但我想通过升级我的 kotlin 版本来使用它。

在此输入图像描述

yin*_*ash 21

Dagger/Hilt 版本 2.43.2 似乎已修复此问题。

请参阅https://github.com/google/dagger/releases/tag/dagger-2.43.2


Rod*_*roz 12

您可以添加kapt "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.4.2",问题就会消失,但是如果您使用Jetpack Compose,则必须将 Kotlin 版本降级,因为 Compose 编译器目前1.6.10还不与 Kotlin 兼容。1.7.0

plugins {
    id 'com.android.application' version '7.2.1' apply false
    id 'com.android.library' version '7.2.1' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
    id 'org.jetbrains.kotlin.jvm' version '1.6.10' apply false
    id 'com.google.dagger.hilt.android' version '2.42' apply false
}
Run Code Online (Sandbox Code Playgroud)

  • 它的工作原理是添加``kapt "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.4.2"`` (3认同)
  • 为什么它有效? (2认同)

Has*_*cuk 0

当我像这样添加它时问题就解决了

plugins {
            id 'androidx.navigation.safeargs' version '2.4.1'
            id 'dagger.hilt.android.plugin'
            id "org.jetbrains.kotlin.plugin.parcelize" version "1.6.0-M1"
            id 'com.android.library'
            id 'org.jetbrains.kotlin.android' version '1.7.0'
        }
    
      resolutionStrategy {
            eachPlugin {
                if (requested.id.id == 'dagger.hilt.android.plugin') {
                    useModule("com.google.dagger:hilt-android-gradle-plugin:2.42")
                }
                if (requested.id.id == 'com.google.gms.google-services') {
                    useModule("com.google.gms:google-services:4.3.10")
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)