sourceCompatibility 8 和 11 有什么区别?当它们设置为不同的值时会发生什么?

dev*_*vio 3 java android gradle android-activity source-compatibility

当我的目标 Android API 级别 21 时,我将其设置为sourceCompatibility11 或 8,以及我的构建 gradle 中的差异是什么,我总是这样设置

 compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)

但在 android studio Electric Eel 上它说: Starting with Android Gradle plugin 7.4.0-alpha04, AGP ships wth JVM 11 bytecode.

gre*_*rez 5

当您将编译选项设置为

compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}
Run Code Online (Sandbox Code Playgroud)

您将能够使用 Java 11 语言功能进行编译

  • 不,不是的。它仅更改您可以用来创建项目的 Java 语言版本。 (5认同)