我是Android开发的新手。我已经在电脑上安装了Eclipse、Java 11和Android SDK工具。但当我尝试构建项目时,它说要升级工具。但我已经安装了最新的SDK。
在网上阅读时,我发现Android不完全支持Java SE,而是主要支持Java SE 6和7,但这是一篇旧帖子。
我发现Android并不完全支持Java 11。
我的问题是,哪个JDK版本完全支持Android,我是否需要在电脑上安装2个JDK版本?
我是Android开发的新手。我已经在电脑上安装了Eclipse、Java 11和Android SDK工具。但当我尝试构建项目时,它说要升级工具。但我已经安装了最新的SDK。
在网上阅读时,我发现Android不完全支持Java SE,而是主要支持Java SE 6和7,但这是一篇旧帖子。
我发现Android并不完全支持Java 11。
我的问题是,哪个JDK版本完全支持Android,我是否需要在电脑上安装2个JDK版本?
使用 Android Studio Arctic Fox | 2020.3.1,您终于可以在项目中使用 Java 11,以下是更多信息:https://developer.android.com/studio/past-releases/past-agp-releases/agp-7-0-0-release-notes#java-11
您现在可以在应用程序项目中编译Java 11源代码,这使您能够使用较新的语言功能,如私有接口方法、匿名类的菱形运算符和用于Lambda参数的局部变量语法。
要启用此功能,请将
compileOptions
设置为所需的Java版本,并将compileSdkVersion
设置为30或更高版本。
// build.gradle
android {
compileSdkVersion 30
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
// For Kotlin projects
kotlinOptions {
jvmTarget = "11"
}
}
也许这两篇文章可以更好地解释这种情况:
Jake Wharton - Android的Java 9、10、11和12支持
Jake Wharton - Android的Java 8支持
如果您设置适当的compileOptions,一些Java 9-12的功能也支持Android。
compileOptions {
targetCompatibility JavaVersion.VERSION_12
sourceCompatibility JavaVersion.VERSION_12
}
针对Java 12,您需要设置Gradle插件的“可能最新”版本。
正式文档如下所述:
Android Studio 3.0及更高版本支持所有Java 7语言功能和一些Java 8语言功能的子集,其特性因平台版本而异。
因此JDK 7得到完全支持,如果你想使用一些JDK 8功能,则应进行适当的设置。
而且android studio不支持高于8的java版本。