Min*_*yên 11 mobile kotlin android-studio android-jetpack-compose dagger-hilt
我试图在 Kotlin 1.5.10 中使用插件运行我的代码
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'
Run Code Online (Sandbox Code Playgroud)
和依赖关系如下
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'
Run Code Online (Sandbox Code Playgroud)
当我迁移到 kotlin_version = "1.5.10" 时,它只是错误说明
错误:[Hilt] 不支持的元数据版本。检查您的 Kotlin 版本是否 >= 1.0: java.lang.IllegalStateException: Unsupported metadata version。在 dagger.internal.codegen.kotlin.KotlinMetadata.metadataOf(KotlinMetadata.java:206) at dagger.internal.codegen.kotlin.KotlinMetadata.from(KotlinMetadata.java:186) at java 检查您的 Kotlin 版本是否 >= 1.0。 base/java.util.HashMap.computeIfAbsent(HashMap.java:1133) ...
谁能帮我?我花了很多时间,你的回答对我很有帮助
小智 63
这是我解决错误的方法:
如果您使用 Kotlin 1.9.0,则使用 hilt 2.48
在 Hilt 版本中进行以下更新:
在项目级 build.gradle 中
plugins{
id("com.google.dagger.hilt.android") version "2.48" apply false
}
Run Code Online (Sandbox Code Playgroud)
在应用程序级别的build.gradle中
plugins{
id ("kotlin-kapt")
id("com.google.dagger.hilt.android")
}
dependencies{
implementation("com.google.dagger:hilt-android:2.48")
kapt("com.google.dagger:hilt-android-compiler:2.48")
}
Run Code Online (Sandbox Code Playgroud)
小智 20
我遇到了同样的错误。我更改了两个 gradle 文件,它对我有用。
项目摇篮
plugins {
// dependencies for dagger hilt
id 'com.google.dagger.hilt.android' version '2.42' apply false
}
Run Code Online (Sandbox Code Playgroud)
模块等级
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")
}
Run Code Online (Sandbox Code Playgroud)
Shu*_*gps 20
如果有人仍然面临与 kotlin 和 hilt 版本不匹配相关的问题,这里是为我工作的最新版本的 hilt vs kotlin
项目级别:
plugins {
id("com.android.application") version "8.1.2" apply false
id("org.jetbrains.kotlin.android") version "1.9.0" apply false
id("com.google.dagger.hilt.android") version "2.48.1" apply false
}
Run Code Online (Sandbox Code Playgroud)
应用级别:
plugins {
...
id("kotlin-android")
id("kotlin-kapt")
id("com.google.dagger.hilt.android")
}
kotlinOptions {
jvmTarget = "1.8"
}
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.2")
implementation("com.google.dagger:hilt-android:2.48.1")
kapt("com.google.dagger:hilt-android-compiler:2.48.1")
kapt("androidx.hilt:hilt-compiler:1.0.0")
implementation("androidx.hilt:hilt-navigation-fragment:1.0.0")
}
Run Code Online (Sandbox Code Playgroud)
我浪费了大约 30 个小时来找出正确的最新版本和兼容性,但我却遇到了相同的报告错误。希望这会对某人有所帮助!
小智 17
如果您使用 kotlin 版本 1.8.0 那么
在项目级别的build.gradle中更改hilt版本
id 'com.google.dagger.hilt.android' version '2.44' apply false
Run Code Online (Sandbox Code Playgroud)
在应用程序级别的build.gradle中
implementation "com.google.dagger:hilt-android:2.44"
kapt "com.google.dagger:hilt-compiler:2.44"
Run Code Online (Sandbox Code Playgroud)
使用 dagger 版本2.48也ksp解决了这个问题。使用Java版本17。
build.gradle.kts(项目)
plugins {
...
id("com.google.devtools.ksp") version "1.9.10-1.0.13" apply false
id("com.google.dagger.hilt.android") version "2.48" apply false
}
Run Code Online (Sandbox Code Playgroud)
构建.gradle.kts(应用程序)
plugins {
...
id("com.google.dagger.hilt.android")
id("com.google.devtools.ksp")
}
...
dependencies {
...
implementation("com.google.dagger:hilt-android:2.48")
ksp("com.google.dagger:hilt-compiler:2.48")
}
Run Code Online (Sandbox Code Playgroud)
我通过将依赖项版本更新到最新版本并添加此附加依赖项解决了该错误。我在用java version 17。
kapt "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0"
Run Code Online (Sandbox Code Playgroud)
build.gradle(项目级别)
plugins {
...
id 'org.jetbrains.kotlin.android' version '1.8.20' apply false
id 'com.google.dagger.hilt.android' version '2.48' apply false
}
Run Code Online (Sandbox Code Playgroud)
build.gradle(应用程序级别)
plugins {
...
id 'kotlin-kapt'
id 'com.google.dagger.hilt.android'
}
...
dependencies {
...
implementation "com.google.dagger:hilt-android:2.48"
kapt "com.google.dagger:hilt-compiler:2.48"
kapt "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0"
}
kapt {
correctErrorTypes true
}
Run Code Online (Sandbox Code Playgroud)
目前 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"
}
Run Code Online (Sandbox Code Playgroud)
感谢您的回答,我必须做一些调整才能为我工作,因为我使用的是北极狐,希望这个答案也能有所帮助
构建.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"
}
}
Run Code Online (Sandbox Code Playgroud)
构建.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'
Run Code Online (Sandbox Code Playgroud)
将这一行添加到 build.gradle 依赖项对我有帮助:
kapt("org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.3.0")
Run Code Online (Sandbox Code Playgroud)
https://youtrack.jetbrains.com/issue/KT-45885
小智 5
如果有任何解决方案解决了您的问题。转到https://dagger.dev/hilt/gradle-setup,在将 Hilt 与 Kotlin 结合使用部分中,复制中提到的版本dependencies并build.gradle相应更新
| 归档时间: |
|
| 查看次数: |
3566 次 |
| 最近记录: |