compileSdkVersionz 指定31

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

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的版本。