You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加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")
}

最后操作

  1. 点击Android Studio右上角的Sync Project with Gradle Files同步项目
  2. 执行Build > Clean Project清理旧构建缓存
  3. 重新编译项目

内容的提问来源于stack exchange,提问作者Alfin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:12:42