立青_ 2021-11-03 11:18 采纳率: 50%
浏览 12

compileSdkVersionz 指定31

将compileSdkVersion 指定31后,jdk8编译通不过,改成jdk11就能编译成功了。31不能用jdk8编译吗?还是其它什么问题?

  • 写回答

1条回答 默认 最新

  • Wuchaoqian12345 2023-02-12 11:42
    关注

    compileSdkVersion指定的是编译的Android SDK的版本号。如果指定为31,那么在编译时必须使用不低于Android 11(API 级别 31)的SDK版本,因为高于该版本的SDK才支持更高版本的API和特性。
    对于jdk8,它只支持Java SE 8语言特性,不能支持Java SE 11和更高版本的语言特性,因此编译SDK版本31的项目需要使用jdk11或更高版本的JDK。
    简单来说,jdk8不支持编译SDK版本31的项目,因为SDK版本31使用了更高版本的语言特性,需要更高版本的jdk才能编译。
    因此,如果遇到编译失败的问题,请检查您的jdk版本是否支持您使用的compileSdkVersion的版本。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月3日