2

I am new with Jetpack Compose and Hilt, I got problems when building the application after implementing the class module

Execution failed for task ':app:kaptDebugKotlin'.

A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction

add picture

I use Catalog Version, this is the file:

[versions]
agp = "8.4.1"
kotlin = "1.9.0"
coreKtx = "1.13.1"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
lifecycleRuntimeKtx = "2.8.2"
activityCompose = "1.9.0"
composeBom = "2023.08.00"
composeMaterial = "1.6.0"


lifecyclevm = "2.7.0"
navcompose ="2.7.6"
kotlinCoroutines = "1.6.4"
hiltversion = "2.44"
hiltComposeNav = "1.0.0"
hiltWork = "1.0.0"
retrofitVer = "2.9.0"
okhttpVer = "4.9.2"

rerofitGsonCv = "2.4.0"
gsonVer = "2.8.5"
coilVer = "2.4.0"
materialIcon = "1.5.4"
flowlVer = "0.28.0"
flexibleBs = "0.1.3"


[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
androidx-compose-material = { module="androidx.compose.material:material", version.ref="composeMaterial"}


lifecycle-viewmodel = { module="androidx.lifecycle:lifecycle-viewmodel-compose", version.ref="lifecyclevm"}
navigation-compose = { module="androidx.navigation:navigation-compose", version.ref="navcompose"}
kotlin-coroutines = { module="org.jetbrains.kotlinx:kotlinx-coroutines-play-services", version.ref="kotlinCoroutines" }

hilt = { module="com.google.dagger:hilt-android", version.ref="hiltversion"}
hilt-compiler = { module="com.google.dagger:hilt-compiler", version.ref="hiltversion"}
hilt-android-compiler = {module="com.google.dagger:hilt-android-compiler", version.ref="hiltversion"}

hilt-navigation-compose = { module="androidx.hilt:hilt-navigation-compose", version.ref="hiltComposeNav"}

flowlayout = { module="com.google.accompanist:accompanist-flowlayout", version.ref="flowlVer"}

#Retrofit
retrofit = { module="com.squareup.retrofit2:retrofit", version.ref="retrofitVer"}
okhttp = { module="com.squareup.okhttp3:okhttp", version.ref="okhttpVer" }
okhttp-log = { module="com.squareup.okhttp3:logging-interceptor", version.ref="okhttpVer"}
retrofit-converter-gson = { module="com.squareup.retrofit2:converter-gson", version.ref="rerofitGsonCv"}
gson = { module="com.google.code.gson:gson", version.ref="gsonVer"}
coil = { module="io.coil-kt:coil-compose", version.ref="coilVer"}


material-icons = { module="androidx.compose.material:material-icons-extended-android", version.ref="materialIcon"}

flexible-bottomsheet = { module="com.github.skydoves:flexible-bottomsheet-material3", version.ref="flexibleBs"}


[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version= "1.9.0"}
dagger-hilt = { id = "com.google.dagger.hilt.android", version="2.44"}

And this is my build.gradle (module)

plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.jetbrains.kotlin.android)
    alias(libs.plugins.dagger.hilt)
    alias(libs.plugins.kotlin.kapt)

}

android {
    namespace 'com.beliaja.frapomate'
    compileSdk 34

    defaultConfig {
        applicationId "com.beliaja.frapomate"
        minSdk 24
        targetSdk 34
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        compose true
    }
    composeOptions {
        kotlinCompilerExtensionVersion '1.5.1'
    }
    packaging {
        resources {
            excludes += '/META-INF/{AL2.0,LGPL2.1}'
        }
    }
}

dependencies {

    implementation libs.androidx.core.ktx
    implementation libs.androidx.lifecycle.runtime.ktx
    implementation libs.androidx.activity.compose
    implementation platform(libs.androidx.compose.bom)
    implementation libs.androidx.ui
    implementation libs.androidx.ui.graphics
    implementation libs.androidx.ui.tooling.preview
    implementation libs.androidx.material3
    implementation libs.androidx.compose.material
    implementation libs.material.icons

    implementation libs.flowlayout
    implementation libs.flexible.bottomsheet


    implementation libs.lifecycle.viewmodel
    implementation libs.navigation.compose
    implementation libs.kotlin.coroutines

    implementation libs.hilt
    kapt libs.hilt.compiler
    kapt libs.hilt.android.compiler
    implementation libs.hilt.navigation.compose

    implementation libs.retrofit
    implementation libs.okhttp
    implementation libs.okhttp.log
    implementation libs.retrofit.converter.gson
    implementation libs.gson
    implementation libs.coil



    testImplementation libs.junit
    androidTestImplementation libs.androidx.junit
    androidTestImplementation libs.androidx.espresso.core
    androidTestImplementation platform(libs.androidx.compose.bom)
    androidTestImplementation libs.androidx.ui.test.junit4
    debugImplementation libs.androidx.ui.tooling
    debugImplementation libs.androidx.ui.test.manifest
}

// Allow reference to generate code
kapt {
    correctErrorTypes = true
}

and this is my build.gradle (project)

plugins {
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.jetbrains.kotlin.android) apply false
    alias(libs.plugins.dagger.hilt) apply false
    alias(libs.plugins.kotlin.kapt) apply false
}

Every time i added this module the project build is failed,

@Module
@InstallIn(SingletonComponent::class)
object AppModule {

    @Provides
    @Singleton
    fun provideRetrofit(): Retrofit {
        return Retrofit.Builder()
            .baseUrl("https://your-api-base-url.com/")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
    }

}

Please anyone can help me?

2 Answers 2

1

Your Hilt version is too old for Kotlin 1.9.

While 2.46 is the earliest compatible version you should directly update hiltversion to the current version 2.51.1 (at the time of writing).

And while you're at it you might also want to update hiltComposeNav to 1.2.0.

Important: In your version catalog's [plugins] section you (probably accidentally) hard-coded some version numbers. Make sure to use version references instead:

kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
dagger-hilt = { id = "com.google.dagger.hilt.android", version.ref = "hiltversion" }

You shoud also remove kapt libs.hilt.compiler from your gradle file, that isn't needed since you already use kapt libs.hilt.android.compiler.

1
  • You are right, the problem coming from version of hilt, it is not match with my kotlin kapt version
    – Nanda Z
    Commented Jul 8 at 3:18
-2

Firstly, I want to say that you can follow this official website to use dependency injection with Hilt in your project.

And secondly, the shown error says that you should check kapt usage in project it could be less or wrong implementation way.

Happy coding.

4
  • i have followed the documentation
    – Nanda Z
    Commented Jul 7 at 10:50
  • Do you see wrong implementation? this is how catalog version be implemented
    – Nanda Z
    Commented Jul 7 at 10:58
  • Let me send you my example project codes: build.gradle.kts(Project) plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.jetbrains.kotlin.android) apply false alias(libs.plugins.dagger.hilt.android) apply false } build.gradle.kts(App Module) plugins { //The rest implementation comes here id("kotlin-kapt") id("dagger.hilt.android.plugin") } Dependencies { //Hilt Dependency implementation(libs.google.hilt.android) kapt(libs.google.hilt.compiler) } kapt { correctErrorTypes = true } Commented Jul 7 at 11:02
  • @Ahmet Bostancikli: If that code is relevant to your answer then please edit it directly. While adding code please make sure it relates to the question, i.e. use Groovy syntax instead of Kotlin and explain in more detail what your code does differently and why it fixes the problem.
    – Leviathan
    Commented Jul 7 at 12:20

Not the answer you're looking for? Browse other questions tagged or ask your own question.