18

我试图在 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:不支持的元数据版本。在 dagger.internal.codegen.kotlin.KotlinMetadata.from(KotlinMetadata.java:186) 的 dagger.internal.codegen.kotlin.KotlinMetadata.metadataOf(KotlinMetadata.java:206) 检查您的 Kotlin 版本是否 >= 1.0。基础/java.util.HashMap.computeIfAbsent(HashMap.java:1133) ...

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

4

5 回答 5

13

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

目前 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"
}
于 2021-07-09T15:12:10.597 回答
3

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

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

构建.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'
于 2021-08-07T11:59:30.540 回答
1

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

于 2021-09-22T12:57:12.580 回答
0

一般解决方案 - 在 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.
于 2021-07-13T10:22:03.097 回答
0

我这里也一样。我在 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"
}
于 2021-07-31T10:39:45.150 回答