Не удалось выполнить задачу ‘:приложение:kaptDebugKotlin’ — При использовании Hilt возникает ошибка

#android #android-studio #kotlin #dependency-injection #dagger-hilt

Вопрос:

Добавлены зависимости рукояти:

Build.gradle(проект)

 def hilt_version = "2.38.1"
classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
 

Build.gradle(приложение)

 plugins {
 id 'dagger.hilt.android.plugin'
 ....
 }

....

dependencies {
implementation "com.google.dagger:hilt-android:2.38.1"
kapt "com.google.dagger:hilt-compiler:2.38.1"
 .......
 }
 

У меня также есть глобальный класс приложений:

Мое приложение.кт

 @HiltAndroidApp
class MyApplication : Application()
 

В моем манифесте:

Manifest.xml

 <application
    android:allowBackup="true"
    android:name=".global.MyApplication"/>
 

Теперь я создаю модуль

Сетевой модуль.kt

 @Module
@InstallIn(SingletonComponent::class)
class NetworkModule {

}
 

Я получаю ошибку при запуске своего кода:

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

При выполнении org.jetbrains произошел сбой.kotlin.gradle.внутренний.KaptExecution java.язык.отражение.Исключение InvocationTargetException (нет сообщения об ошибке)**

Когда я удаляю их: @Module() и @InstallIn()

Ошибка исчезает…

в чем может быть проблема? Показанная мне ошибка совсем не информативна.

Комментарии:

1. Вы добавили kotlin-kapt плагин в build.gradle ?

2. Да, это там: идентификатор «котлин-капт» @LucaPizzini

Ответ №1:

Итак, похоже, что существует проблема с интеграцией Hilt при таргетинге на версию 31 (Android 12).

Когда у меня был:

 compileSdkVersion 31
buildToolsVersion "31.0.0"

defaultConfig {
   minSdkVersion 21
   targetSdkVersion 31
}
 

Появится сообщение об ошибке…

но когда я перешел на:

 compileSdkVersion 30
buildToolsVersion "30.0.3"

defaultConfig {
   minSdkVersion 21
   targetSdkVersion 30
}
 

Он начинает работать без этой ошибки..

Что-то не так с интеграцией Hilt при ориентации на Android 12 (вероятно)

Ответ №2:

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

https://dagger.dev/hilt/gradle-setup

Ответ №3:

Я обновил свой проект до Java 11 в файле модуля gradle.

 android {
compileSdkVersion 31
buildToolsVersion "30.0.2"

compileOptions {
    sourceCompatibility 11
    targetCompatibility 11
}

kotlinOptions {
    jvmTarget = "11"
}
 

И я обновил до последних плагинов gradle

введите описание изображения здесь

И убедился, что проект указывает на gradle jdk11 введите описание изображения здесь