执行 org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask 时发生故障

问题描述 投票:0回答:2

我一直在尝试实现一个移动应用程序,该应用程序应该使用 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
}

enter image description here

终端消息错误

无法解析配置“: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”) enter image description here

android kotlin android-studio dagger-hilt
2个回答
0
投票

1.您需要更改运行时使用的 JDK Gradle。从 JDK 8 到 JDK 11。

不兼容,因为该组件声明了一个在编译时使用的组件,与 Java 11 兼容,而消费者需要一个在运行时使用的组件,与 Java 8 兼容。

如错误消息所示。

查看此图片以获取更多信息。


2.还有这个

compileOptions {
   sourceCompatibility JavaVersion.VERSION_17
   targetCompatibility JavaVersion.VERSION_17
}

compileOptions {
   sourceCompatibility JavaVersion.VERSION_11
   targetCompatibility JavaVersion.VERSION_11
}

或通过 IDE 像这样


0
投票

错误消息告诉您需要在 Java 11 或更高版本上运行构建才能使用此版本的 Android 插件。

确保您安装了这样一个版本的 JDK,并将 Android Studio 指向它(这个问题有详细信息),或者如果您从命令行运行 Gradle,则将 JAVA_HOME 环境变量设置为其位置。

© www.soinside.com 2019 - 2024. All rights reserved.