java 11支持android吗?

问题描述 投票:0回答:5

我是 Android 开发新手。我的电脑上安装了eclipse、java 11和android sdk工具。但是当我尝试构建一个项目时,它说要升级工具。但我已经安装了最新的sdk。

当我在互联网上阅读时,我发现 android 并不完全支持 java SE,它主要支持 java SE 6 和 7。 - 但这是一篇旧文章 .

我发现android不完全支持java 11。

我的问题是,完全支持android的JDK版本是多少?我的电脑必须安装2个版本的JDK吗?

java android sdk java-11
5个回答
29
投票

使用 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版本 并将

compileSdkVersion
设置为 30 或以上

// build.gradle

android {
    compileSdkVersion 30

    compileOptions {
      sourceCompatibility JavaVersion.VERSION_11
      targetCompatibility JavaVersion.VERSION_11
    }

    // For Kotlin projects
    kotlinOptions {
      jvmTarget = "11"
    }
}

22
投票

也许这两篇文章可以让您对这种情况有更多的了解:

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 插件的“可能最新”版本。


20
投票

正如官方文档所说:

Android Studio 3.0 及更高版本支持所有 Java 7 语言功能和 Java 8 语言功能的子集,因平台版本而异

所以JDK 7是完全支持的,如果你想使用JDK 8的一些功能,你应该进行适当的设置。

这里是使用 Java 8 的参考链接

并且android studio不支持高于8的java版本。


7
投票

你的拟合方向是向后的。 Android 支持某些版本的 Java,反之则不然。

话虽这么说,Oracle Java 和 Android Java 并不是真正的同一件事 - 事实上,它们甚至不使用相同的虚拟机。它们是完全独立开发的。

正如其他人所指出的,最新版本的 Android 最高支持 Java 7 和 Java 8 功能的子集。较旧版本的 Android 可能支持的内容较少。


6
投票

截至 2020 年 10 月,许多缺失的 API 和较新版本的 Java 现在通过 Open JDK 支持。我发现了一些有用的链接:支持较新的 Java 语言 API (官方 Youtube 视频)和 通过脱糖提供 Java 8+ API 。我希望这可以帮助那些在 Java 版本兼容性方面苦苦挣扎的人

© www.soinside.com 2019 - 2024. All rights reserved.