我是 Android 开发新手。我的电脑上安装了eclipse、java 11和android sdk工具。但是当我尝试构建一个项目时,它说要升级工具。但我已经安装了最新的sdk。
当我在互联网上阅读时,我发现 android 并不完全支持 java SE,它主要支持 java SE 6 和 7。 - 但这是一篇旧文章 .
我发现android不完全支持java 11。
我的问题是,完全支持android的JDK版本是多少?我的电脑必须安装2个版本的JDK吗?
使用 Android Studio 北极狐 | 2020年3月1日你终于可以在你的项目中使用Java 11了,这里有更多信息: https://developer.android.com/build/releases/past-releases/agp-7-0-0-release-notes#java-11
您现在可以在应用程序的项目中编译最高可达 Java 11 的源代码, 使您能够使用新的语言功能,例如私有界面 方法、匿名类的菱形运算符和本地 lambda 参数的变量语法。
要启用此功能,请将compileOptions设置为所需的Java版本 并将
设置为 30 或以上compileSdkVersion
// 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 支持
Android 也支持 java 9-12 的一些功能 例如,如果您设置适当的编译选项
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版本。
你的拟合方向是向后的。 Android 支持某些版本的 Java,反之则不然。
话虽这么说,Oracle Java 和 Android Java 并不是真正的同一件事 - 事实上,它们甚至不使用相同的虚拟机。它们是完全独立开发的。
正如其他人所指出的,最新版本的 Android 最高支持 Java 7 和 Java 8 功能的子集。较旧版本的 Android 可能支持的内容较少。
截至 2020 年 10 月,许多缺失的 API 和较新版本的 Java 现在通过 Open JDK 支持。我发现了一些有用的链接:支持较新的 Java 语言 API (官方 Youtube 视频)和 通过脱糖提供 Java 8+ API 。我希望这可以帮助那些在 Java 版本兼容性方面苦苦挣扎的人