解决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'
    }
    ....
}

重新运行,报错消失。

相关推荐
weixin_440784111 小时前
Java线程池工作原理浅析
android·java·开发语言·okhttp·android studio·android runtime
2501_944396191 小时前
Flutter for OpenHarmony 视力保护提醒App实战 - 性能优化技巧
android·flutter·性能优化
龚礼鹏1 小时前
图像显示框架十二——BufferQueue的工作流程(基于Android 15源码分析)
android
_F_y1 小时前
MySQL用户管理
android·mysql·adb
TheNextByte11 小时前
如何将照片从计算机传输到Android /iPhone
android·gitee·iphone
sun0077002 小时前
Android 默认的日志记录方式
android
瓦特what?2 小时前
C++编程防坑指南(小说版)
android·c++·kotlin
一招定胜负2 小时前
卷积神经网络提取人脸五个特征点
人工智能·cnn·kotlin
独处东汉3 小时前
freertos开发空气检测仪之输入子系统按键驱动测试
android·java·数据库
m0_748229993 小时前
Laravel3.x:回顾经典框架的早期特性
android