Search code examples
android-studiokotlinmobileandroid-jetpack-composedagger-hilt

Hilt Unsupported metadata version in Kotlin


I was tried to run my code in Kotlin 1.5.10 With plugin as

plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'

and dependencies as below

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'

When I migrate to kotlin_version = "1.5.10", it just errors out stating

error: [Hilt] Unsupported metadata version. Check that your Kotlin version is >= 1.0: java.lang.IllegalStateException: Unsupported metadata version. Check that your Kotlin version is >= 1.0 at dagger.internal.codegen.kotlin.KotlinMetadata.metadataOf(KotlinMetadata.java:206) at dagger.internal.codegen.kotlin.KotlinMetadata.from(KotlinMetadata.java:186) at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1133) ...

Can anyone help me? I spent a lot of time on it, your answer will help me a lot


Solution

  • Go to https://dagger.dev/hilt/gradle-setup check Hilt currently version

    Update: For now, you can use the newest version.

    • Kotlin:1.9.0 - Hilt:2.48
    • Kotlin:2.0.0 - Hilt:2.51.1

    For Gradle version catalogs: You can use either ksp or kapt; for now, I will use ksp.

    Project-level build.gradle

    plugins {
        /.../
        alias(libs.plugins.compose.compiler) apply false
        alias(libs.plugins.ksp) apply false
        alias(libs.plugins.dagger.hilt) apply false
    }
    

    App-level build.gradle

    plugins {
        /.../
        alias(libs.plugins.compose.compiler)
        alias(libs.plugins.ksp)
        alias(libs.plugins.dagger.hilt)
    }
    

    libs.versions.toml

    [libraries]
    /.../
    hilt = { group = 'com.google.dagger', name = 'hilt-android', version = '2.51.1'}
    androidx-hilt = { group = 'androidx.hilt', name = 'hilt-navigation-compose', version = '1.2.0'}
    hilt-android-compiler = { group = 'com.google.dagger', name = 'hilt-compiler', version = '2.51.1' }
    
    [plugins]
    /.../
    compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
    ksp = { id = "com.google.devtools.ksp", version = "2.0.0-1.0.23" }
    dagger-hilt = { id = "com.google.dagger.hilt.android", version = "2.51.1" }