Ошибка сборки: произошел сбой при выполнении org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction

Я новичок в Jetpack Compose и Hilt, у меня возникли проблемы при создании приложения после реализации модуля класса.

Не удалось выполнить задачу «:app:kaptDebugKotlin».

Произошел сбой при выполнении org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction.

Я использую версию каталога, это файл:

[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"}

А это мой build.gradle (модуль)

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
}

и это мой build.gradle (проект)

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
}

Каждый раз, когда я добавлял этот модуль, сборка проекта завершалась неудачей,

@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()
    }

}

Пожалуйста, кто-нибудь может мне помочь?

2
0
96
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Во-первых, я хочу сказать, что вы можете следить за этим официальным сайтом, чтобы использовать внедрение зависимостей с помощью Hilt в своем проекте.

А во-вторых, показанная ошибка говорит о том, что вам следует проверить использование kapt в проекте, возможно, его меньше или неправильный путь реализации.

Приятного кодирования.

я следил за документацией

Nanda Z 07.07.2024 12:50

Вы видите неправильную реализацию? вот как будет реализована версия каталога

Nanda Z 07.07.2024 12:58

Позвольте мне прислать вам примеры кодов проектов: build.gradle.kts(Project) плагины { alias(libs.plugins.android.application) применить ложный псевдоним (libs.plugins.jetbrains.kotlin.android) применить ложный псевдоним (libs.plugins .dagger.hilt.android) apply false } build.gradle.kts(App Module) плагины { //Остальная реализация находится здесь id("kotlin-kapt") id("dagger.hilt.android.plugin") } Зависимости { //Реализация зависимости Hilt(libs.google.hilt.android) kapt(libs.google.hilt.compiler) } kapt { CorrectErrorTypes = true }

Ahmet Bostancikli 07.07.2024 13:02

@Ahmet Bostancikli: Если этот код имеет отношение к вашему ответу, пожалуйста, отредактируйте его напрямую. Добавляя код, убедитесь, что он относится к вопросу, т. е. используйте синтаксис Groovy вместо Kotlin и более подробно объясните, что ваш код делает по-другому и почему он решает проблему.

Leviathan 07.07.2024 14:20
Ответ принят как подходящий

Ваша версия Hilt слишком старая для Kotlin 1.9.

Хотя 2.46 является самой ранней совместимой версией, вам следует напрямую обновить hiltversion до текущей версии 2.51.1 (на момент написания).

И пока вы этим занимаетесь, возможно, вам также захочется обновить hiltComposeNav до версии 1.2.0.

Важно: в разделе [plugins] вашего каталога версий вы (вероятно, случайно) жестко запрограммировали некоторые номера версий. Вместо этого обязательно используйте ссылки на версии:

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

Вам также следует удалить kapt libs.hilt.compiler из вашего файла Gradle, в этом нет необходимости, поскольку вы уже используете kapt libs.hilt.android.compiler.

Вы правы, проблема связана с версией hilt, она не совпадает с моей версией kotlin kapt.

Nanda Z 08.07.2024 05:18

Другие вопросы по теме