java11支持android吗?

0tdrvxhp  于 2023-02-11  发布在  Android
关注(0)|答案(5)|浏览(432)

我是android开发新手,我已经在电脑里安装了eclipse,java 11和android sdk工具,但是当我试图构建一个项目时,它说要升级工具,但是我已经安装了最新的sdk。
当我在互联网上阅读时,我发现Android并不完全支持Java SE,它主要支持Java SE 6和7. - * 但这是一个旧的职位 * .
我发现Android并不完全支持Java 11。
我的问题是,什么是完全支持android的JDK版本,我必须在我的计算机上安装2个版本的JDK吗?

gojuced7

gojuced71#

使用Android工作室北极狐|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"
    }
}
lo8azlld

lo8azlld2#

可能是这2篇文章对情况给予了更多的了解:
Jake Wharton - Android's Java 9, 10, 11, and 12 Support
Jake Wharton - Android's Java 8 Support
如果您设置了适当的compileOptions,Java 9-12的某些功能在Android中也会受到支持,例如

compileOptions {
    targetCompatibility JavaVersion.VERSION_12
    sourceCompatibility JavaVersion.VERSION_12
}

注:对于java 12,您需要设置Gradle插件的“可能最新”版本。

n3h0vuf2

n3h0vuf23#

正如官方文件所述:
Android Studio 3.0及更高版本支持所有Java 7语言功能以及Java 8语言功能的子集(因平台版本而异
所以完全支持JDK 7,如果您想使用JDK 8的一些特性,您应该进行适当的设置。
这里是the ref link for using Java 8
android studio不支持高于8的java版本。

bvhaajcl

bvhaajcl4#

你有向后适应的方向。Android支持某些版本的Java,而不是相反。
话虽如此,Oracle Java和Android Java实际上并不是一回事--事实上,它们甚至没有使用相同的虚拟机,它们是完全独立开发的。
正如其他人所指出的,最新版本的Android最多支持Java7和Java8的一个子集,旧版本的Android可能支持的更少。

44u64gxh

44u64gxh5#

截至2020年10月,许多缺失的API和更新版本的Java现在都可以通过Open JDK获得支持。Support for newer Java language APIs(官方YouTube视频)和Java 8+ APIs available through desugaring。我希望这能帮助那些在Java版本兼容性问题上苦苦挣扎的人

相关问题