一尘不染

是否可以将Java 8用于Android开发?

java

在网络上搜索,尚不清楚Android开发是否支持Java 8。

在我下载/设置Java 8之前,可以让我指出任何“正式”文档,其中说Android开发是否支持Java 8


阅读 441

收藏
2020-02-26

共2个答案

一尘不染

Java 8
Android支持所有Java 7语言功能以及部分Java 8语言功能,具体取决于平台版本。

检查支持的Java 8功能

使用Java 8语言功能

我们决定直接在当前的javac和dx工具集中添加对Java 8语言功能的支持,并弃用Jack工具链。在这个新方向上,依赖于Java类文件格式的现有工具和插件应继续起作用。展望未来,Android构建系统将原生支持Java 8语言功能。我们的目标是在未来几周内将其作为Android Studio的一部分推出,我们希望尽早与你分享这个决定。

Android上Java 8语言功能支持的未来

Eclipse用户:

对于喜欢Eclipse的老开发人员,谷歌停止支持Eclipse Android开发人员工具

如果安装了Java 8 JDK,请尝试一下,如果出现任何问题,请尝试从窗口菜单→ 首选项 → Java → 编译器在Eclipse中将编译器设置为1.6 。Java 7也可以使用:

Eclipse首选项-> Java->编译器

如果你的目标是Android 5.0或更高版本,则需要Java 7或更高版本。

安装多个JDK并尝试。

2020-02-26
一尘不染

如果您使用,以上链接还包括迁移说明gradle-retrolambda。原始答案如下:

Android不支持Java8。它仅支持Java 7(如果有kitkat),但仍然不具有invokedynamic,只有新的语法糖。

如果您想使用lambdas(Android 8中Java 8的主要功能之一),则可以使用gradle-retrolamba。它是一个gradle构建依赖项,它集成了Retrolambda,retrolambda是一种将Java 8字节码转换回Java 6/7的工具。基本上,如果您在Android Studio中将编译器设置为编译Java 8字节码(从而允许使用lambda),则会将其转换回Java 6/7字节码,然后依次转换为dalvik字节码。如果您想在Android中尝试一些JDK 8功能来代替官方支持,这是一个黑客。

2020-02-26