解决AGP升级到8.0后编译报错kaptGenerateStubsDebugKotlin

问题描述

升级了Gradle插件到8.0,运行报以下错误.

shell 复制代码
Execution failed for task ':app:kaptGenerateStubsDebugKotlin'.
> 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.
  Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

解决方案

看错误是Kapt和java版本不兼容,根据提示的网站地址(https://kotl.in/gradle/jvm/toolchain),AGP版本小于8.1.0,需要显式的设置jdk的兼容版本。如果不指定版本,Android默认使用的是JDK1.8。

shell 复制代码
A warning for Android users. To use Gradle toolchain support, use the Android Gradle plugin (AGP) version 8.1.0-alpha09 or higher.

Gradle Java toolchain support is available only from AGP 7.4.0. Nevertheless, because of this issue, AGP did not set targetCompatibility to be equal to the toolchain's JDK until the version 8.1.0-alpha09. If you use versions less than 8.1.0-alpha09, you need to configure targetCompatibility manually via compileOptions. Replace the placeholder <MAJOR_JDK_VERSION> with the JDK version you would like to use:

android {
    compileOptions {
        sourceCompatibility = <MAJOR_JDK_VERSION>
        targetCompatibility = <MAJOR_JDK_VERSION>
    }
}

打开app的build.gradle,在android块中添加以下代码,设置java的版本为本地对应的版本,因为我本地的是17,所以都为17.

gradle 复制代码
android {
	....
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }
    ....
}

重新运行,报错消失。

相关推荐
ronindong1 小时前
Android自动化功能-使用Appium获取android页面节点元素信息
android·appium·自动化
_一条咸鱼_1 小时前
Android Picasso 调度模块深度剖析(七)
android·面试·android jetpack
孙同学_1 小时前
【MySQL】005.MySQL表的约束(上)
android·mysql·adb
洛阳泰山1 小时前
LangChain4j 搭配 Kotlin:以协程、流式交互赋能语言模型开发
java·ai·语言模型·kotlin·交互·springboot·langchain4j
secret_to_me2 小时前
android contentProvider 踩坑日记
android
QING6182 小时前
Kotlin 匿名函数详解 —— 新手指南
android·ai编程·trae
QING6182 小时前
Parcelable 和 Serializable 的区别详解 —— 新手指南
android·ai编程·trae
_一条咸鱼_9 小时前
Android Picasso 监听器模块深度剖析(八)
android·面试·android jetpack
郁大锤11 小时前
Android Studio 国内镜像使用与 SDK 下载速度优化指南
android·ide·android studio
LCY13311 小时前
spring security +kotlin 实现oauth2.0 认证
java·spring·kotlin