我一直在尝试实现一个移动应用程序,该应用程序应该使用 Dagger Hilt、Glide 和 Kapt。然而,当我尝试实现它时,我收到了这个错误
错误信息:
执行 org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction 时发生故障
java.lang.reflect.InitationTargetException(无错误消息)
我尝试将手柄版本更改为最新版本,但我仍然面临同样的问题
build.gradle(项目)
buildscript {
ext.kotlin_version = '1.9.0'
repositories {
maven { url "https://repo1.maven.org/maven2" }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
plugins {
id 'com.android.application' version '8.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.9.0' apply false
id 'com.android.library' version '8.1.2' apply false
id 'com.google.dagger.hilt.android' version '2.51.1' apply false
id 'com.google.gms.google-services' version '4.3.15' apply false
// id 'com.google.firebase.crashlytics' version '2.9.8' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
设置.gradle
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
flatDir {
dirs 'libs' // aar
}
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
flatDir {
dirs 'libs' // aar
}
maven { url 'https://jitpack.io' }
maven { url "https://repo1.maven.org/maven2" }
}
}
build.gradle(应用程序)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-parcelize'
id 'kotlin-android'
id 'kotlin-kapt'
id 'com.google.dagger.hilt.android'
id 'com.google.gms.google-services'
// id 'com.google.firebase.crashlytics'
}
android {
namespace 'com.print.app'
compileSdk 34
defaultConfig {
applicationId "com.print.app"
minSdk 24
targetSdk 33
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
def setOutputFileName = { prefix ->
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${prefix}-${variant.buildType.name.capitalize()}-${variant.mergedFlavor.versionName}.apk"
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField "String", "BASE_URL", LIVE_URL
signingConfig signingConfigs.release
}
debug {
buildConfigField "String", "BASE_URL", DEVELOPMENT_URL
signingConfig signingConfigs.debug
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
buildFeatures {
viewBinding true
dataBinding true
buildConfig true
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
aidl.srcDirs = ['src/main/aidl']
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.core:core-ktx:1.10.1'
implementation 'androidx.activity:activity-ktx:1.7.2'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
implementation 'com.google.code.gson:gson:2.10.1'
implementation project(path: ':network')
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
// Hilt
implementation "com.google.dagger:hilt-android:2.51.1"
kapt "com.google.dagger:hilt-compiler:2.51.1"
//Preferences DataStore
implementation("androidx.datastore:datastore-preferences:1.1.0")
// Lifecycle
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
//ssp and sdp lib
implementation 'com.intuit.ssp:ssp-android:1.1.0'
implementation 'com.intuit.sdp:sdp-android:1.1.0'
//coroutines lib
def coroutines = "1.6.4"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines"
// //glide lib
// def glide = "4.16.0"
// implementation "com.github.bumptech.glide:glide:$glide"
// kapt "com.github.bumptech.glide:compiler:$glide"
// Using Exoplayer lib so we can manage cache easily.
implementation "com.google.android.exoplayer:exoplayer:2.18.7"
// //Firebase dependencies
// implementation platform('com.google.firebase:firebase-bom:32.2.0')
// implementation 'com.google.firebase:firebase-analytics-ktx'
// implementation "com.google.firebase:firebase-crashlytics-ktx"
// implementation("com.google.firebase:firebase-firestore")
implementation 'androidx.fragment:fragment-ktx:1.6.2'
// kapt 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.6.2'
kapt "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.6.2"
}
kapt {
correctErrorTypes true
}
终端消息错误
无法解析配置“:classpath”的所有文件。 无法解析 com.android.tools.build:gradle:8.1.2。 要求者: 项目:> com.android.application:com.android.application.gradle.plugin:8.1.2 项目:> com.android.library:com.android.library.gradle.plugin:8.1.2 > 未找到 com.android.tools.build:gradle:8.1.2 的匹配变体。消费者被配置为在运行时查找一个与 Java 8 兼容、打包为 jar 的库,其依赖项在外部声明,以及属性“org.gradle.plugin.api-version”,值为“8.0”,但: - 变体“apiElements”功能 com.android.tools.build:gradle:8.1.2 声明一个库,打包为 jar,其依赖项在外部声明: - 不兼容,因为该组件声明了一个在编译时使用的组件,与 Java 11 兼容,而消费者需要一个在运行时使用的组件,与 Java 8 兼容 - 其他兼容属性: - 没有提及任何有关 org.gradle.plugin.api-version 的内容(需要“8.0”) - 变体“javadocElements”功能 com.android.tools.build:gradle:8.1.2 声明一个在运行时使用的组件,及其在外部声明的依赖项: - 不兼容,因为该组件声明文档并且消费者需要一个库 - 其他兼容属性: - 没有说明其目标 Java 版本(需要与 Java 8 兼容) - 没有提及其元素(需要将它们打包为 jar) - 没有提及任何有关 org.gradle.plugin.api-version 的内容(需要“8.0”) - 变体“runtimeElements”功能 com.android.tools.build:gradle:8.1.2 声明一个在运行时使用的库,打包为 jar,其依赖项在外部声明: - 不兼容,因为该组件声明了一个与 Java 11 兼容的组件,而消费者需要一个与 Java 8 兼容的组件 - 其他兼容属性: - 没有提及任何有关 org.gradle.plugin.api-version 的内容(需要“8.0”) - 变体“sourcesElements”功能 com.android.tools.build:gradle:8.1.2 声明一个在运行时使用的组件,及其在外部声明的依赖项: - 不兼容,因为该组件声明文档并且消费者需要一个库 - 其他兼容属性: - 没有说明其目标 Java 版本(需要与 Java 8 兼容) - 没有提及其元素(需要将它们打包为 jar) - 没有提及任何有关 org.gradle.plugin.api-version 的内容(需要“8.0”)
不兼容,因为该组件声明了一个在编译时使用的组件,与 Java 11 兼容,而消费者需要一个在运行时使用的组件,与 Java 8 兼容。
如错误消息所示。
查看此图片以获取更多信息。
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
到
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
或通过 IDE 像这样
错误消息告诉您需要在 Java 11 或更高版本上运行构建才能使用此版本的 Android 插件。
确保您安装了这样一个版本的 JDK,并将 Android Studio 指向它(这个问题有详细信息),或者如果您从命令行运行 Gradle,则将 JAVA_HOME 环境变量设置为其位置。