jvm 获取错误:任务“:app:kaptGenerateStubsDebugKotlin”的执行失败,升级到Android Studio Flamingo后|2022.2.1

col17t5w  于 2023-10-18  发布在  Kotlin
关注(0)|答案(2)|浏览(349)

更新Android Studio版本到2022.2.1后,我开始得到这个错误时,试图编译项目:
任务“:app:kaptGenerateStubsDebugKotlin”的执行失败。
'compileDebugJavaWithJavac'任务(当前目标为1.8)和'kaptGenerateStubsDebugKotlin'任务(当前目标为17)jvm目标兼容性应设置为相同的Java版本。
考虑使用JVM工具链:https://kotl.in/gradle/jvm/toolchain
我的gradle:gradle

defaultConfig {
    minSdk 23
    targetSdk 33

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    javaCompileOptions {
        annotationProcessorOptions {
            arguments = ["room.incremental": "true"]
        }
    }

    consumerProguardFiles 'proguard-rules.pro'
}

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

如何修复此错误?
安卓Studio Flamingo| 2022.2.1
构建编号AI-222.4459.24.2221.9862592,构建于2023年3月31日
运行时版本:17.0.6+0-17.0.6b802.4-9586694 aarch64
VM:OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 13.3.1

nukf8bse

nukf8bse1#

如果您将Gradle更新为8.0.0版本沿着Flamingo 2022.2.1更新,则需要将JDK更新为17版本
你可以在这里看到兼容性表。
应用程序级别build.gradle中的以下代码应该可以解决您的问题:

android {
    ...
    compileOptions {
        sourceCompatibilityJavaVersion.VERSION_17
        targetCompatibilityJavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = '17'
    }
    ...
}
xxls0lw8

xxls0lw82#

这在Android Studio Giraffe上运行良好
根据此工具链文档
在应用程序gradle文件中添加这个为我解决了这个问题。

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

    }

    //important
    kotlin {
        jvmToolchain(18)
    }

相关问题