任务 ':app:kaptDebugKotlin' 执行失败 - 使用 Hilt 时发生错误

Execution failed for task ':app:kaptDebugKotlin' - Error Occurs while using 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"
 .......
 }

我也有全局申请class:

MyApplication.kt

@HiltAndroidApp
class MyApplication : Application()

在我的清单中:

Manifest.xml

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

现在,我创建一个模块

NetworkModule.kt

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

}

当我 运行 我的代码时出现错误:

**任务“:app:kaptDebugKotlin”执行失败。

A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution java.lang.reflect.InvocationTargetException (no error message)**

当我删除这些时: @Module()@InstallIn()

错误消失...

可能是什么问题?向我显示的错误根本没有提供信息。

因此,似乎在以版本 31 (Android 12) 为目标时集成 Hilt 时出现问题。

当我有:

compileSdkVersion 31
buildToolsVersion "31.0.0"

defaultConfig {
   minSdkVersion 21
   targetSdkVersion 31
}

出现错误...

但是当我改为:

compileSdkVersion 30
buildToolsVersion "30.0.3"

defaultConfig {
   minSdkVersion 21
   targetSdkVersion 30
}

它开始工作,没有那个错误..

在定位 android 12(可能)时集成 Hilt 时出现问题

按照以下站点中所述的步骤添加刀柄依赖项,然后将解决错误

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

我在模块 gradle 文件中将我的项目升级到 Java 11。

android {
compileSdkVersion 31
buildToolsVersion "30.0.2"

compileOptions {
    sourceCompatibility 11
    targetCompatibility 11
}

kotlinOptions {
    jvmTarget = "11"
}

我更新到最新的 gradle 插件

并确保项目指向 gradle jdk11

我正在尝试将 android studio 更新到 Bumblebee 的 Android Studio 版本 | 2021.1.1 RC 1

android {

    compileSdkVersion 31
    buildToolsVersion "30.0.3"

 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

gradle project

gradle module

保持最新更新的匕首柄依赖关系解决了我的问题。

plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
}

 //dagger 
    implementation 'com.google.dagger:dagger:2.40.5'
    kapt 'com.google.dagger:dagger-compiler:2.40.5'

targetSdkVersion 31 的构建适用于版本 2.42(jvmTarget、sourceCompatibility 和 targetCompatibility 1.8)。 2.42之前的版本无法成功构建。