任务 ':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 时出现问题
按照以下站点中所述的步骤添加刀柄依赖项,然后将解决错误
我在模块 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之前的版本无法成功构建。
添加了刀柄依赖项:
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 时出现问题
按照以下站点中所述的步骤添加刀柄依赖项,然后将解决错误
我在模块 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之前的版本无法成功构建。