添加Hilt依赖时遭遇Unsupported metadata version错误求助
解决Hilt "Unsupported metadata version" 版本兼容问题
出现这个错误的核心原因是Kotlin版本、Hilt依赖版本、Hilt插件版本三者不兼容,具体问题点如下:
- Hilt核心库与编译器版本不一致:应用模块中
hilt-android用了2.48,但hilt-android-compiler还是2.46.1 - 项目级Hilt插件版本过低(2.44.2),无法适配当前使用的Kotlin 1.9.22
- KSP版本(1.9.20-1.0.14)与Kotlin版本(1.9.22)不匹配
- Compose Compiler版本(1.5.8)与Kotlin 1.9.22存在兼容性差距
具体修改步骤
1. 更新项目级build.gradle.kts
将Hilt插件版本与应用模块的Hilt版本统一,同时调整Kotlin版本适配现有KSP:
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { extra.apply { set("room_version", "2.5.2") } } plugins { id("com.android.application") version "8.0.2" apply false id("com.android.library") version "8.0.2" apply false // 调整Kotlin版本适配当前KSP(1.9.20-1.0.14) id("org.jetbrains.kotlin.android") version "1.9.20" apply false // Hilt插件版本统一为2.48 id("com.google.dagger.hilt.android") version "2.48" apply false } tasks.register("clean", Delete::class) { delete(rootProject.buildDir) }
2. 更新应用模块build.gradle.kts
统一Hilt版本、确保各工具链版本匹配:
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") // KSP版本与Kotlin 1.9.20保持一致 id("com.google.devtools.ksp") version "1.9.20-1.0.14" kotlin("kapt") id("com.google.dagger.hilt.android") } android { namespace = "com.test.testapp" compileSdk = 34 defaultConfig { applicationId = "com.test.testapp" minSdk = 24 targetSdk = 34 versionCode = 1 versionName = "1.0.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true } } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } buildFeatures { compose = true } composeOptions { // Compose 1.5.8适配Kotlin 1.9.20,无需修改 kotlinCompilerExtensionVersion = "1.5.8" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } } dependencies { implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") implementation("androidx.activity:activity-compose:1.8.2") implementation(platform("androidx.compose:compose-bom:2023.08.00")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") implementation("androidx.datastore:datastore-core:1.0.0") implementation("androidx.datastore:datastore-preferences:1.0.0") implementation("io.ak1:rang-vikalp:1.0.0-alpha02") implementation("com.google.code.gson:gson:2.10.1") implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1") //navigation implementation("androidx.navigation:navigation-compose:2.7.6") // 统一Hilt核心库与编译器版本为2.48 implementation("com.google.dagger:hilt-android:2.48") kapt("com.google.dagger:hilt-android-compiler:2.48") implementation("androidx.hilt:hilt-navigation-compose:1.1.0") //Room implementation("androidx.room:room-runtime:${rootProject.extra["room_version"]}") ksp("androidx.room:room-compiler:${rootProject.extra["room_version"]}") implementation("androidx.room:room-ktx:${rootProject.extra["room_version"]}") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") androidTestImplementation(platform("androidx.compose:compose-bom:2023.08.00")) androidTestImplementation("androidx.compose.ui:ui-test-junit4") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") }
最后操作
- 点击Android Studio右上角的
Sync Project with Gradle Files同步项目 - 执行
Build > Clean Project清理旧构建缓存 - 重新编译项目
内容的提问来源于stack exchange,提问作者Alfin
相关产品推荐
相关产品推荐

