在网上搜索,还不清楚Android开发是否支持Java 8。
在我下载/安装Java 8之前,能不能有人给我指出任何“官方”文档,说Java 8是或不支持Android开发。
在网上搜索,还不清楚Android开发是否支持Java 8。
在我下载/安装Java 8之前,能不能有人给我指出任何“官方”文档,说Java 8是或不支持Android开发。
当前回答
是的。我们将很快使用Java 8 !
我们已经决定将对Java 8语言特性的支持直接添加到当前的javac和dx工具集中,并弃用Jack工具链。有了这个新方向,依赖于Java类文件格式的现有工具和插件应该可以继续工作。接下来,Java 8语言特性将被Android构建系统原生支持。我们的目标是在未来几周内将其作为Android Studio的一部分发布,我们希望尽早与大家分享这一决定。
https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
其他回答
Android Gradle插件3.0.0及以后版本支持所有Java 7语言特性和Java 8语言特性的子集,这些特性因平台版本而异。当使用Android Gradle插件4.0.0或更高版本构建应用程序时,您可以使用许多Java 8语言API,而无需为应用程序设置最低API级别。
本页描述了您可以使用的Java 8语言特性,如何正确配置您的项目以使用这些特性,以及您可能遇到的任何已知问题。
这篇文章将帮助你。我把链接放在下面 https://developer.android.com/studio/write/java8-support
我在Stack Overflow上对一个类似的问题写了一个类似的答案,但这里是答案的一部分。
Android Studio 2.1:
新版Android Studio(2.1)支持Java 8特性。以下是Android开发者博客文章的摘录:
... Android Studio 2.1版本包括对新的Jack编译器的支持和对Java 8的支持。 ... 在使用N Developer Preview进行开发时,要使用Java 8语言特性,您需要使用Jack编译器。新建项目向导[文件→新建→项目]为目标N的项目生成正确的配置。
在Android Studio 2.1之前:
Android还不支持Java 1.8(它只支持1.7),所以你不能使用Java 8的特性,比如lambdas。
这个答案提供了更多关于Android Studio兼容性的细节;州:
如果你想在Android中使用lambdas (Java 8的主要特性之一),你可以使用gradle-retrolamba
如果您想了解更多关于使用gradle-retrolambda的知识,这个答案提供了很多细节。
更新2019/10/28
Android Studio 4.0解决了这个问题。
D8编译器在编译时将Java 8原生api的反向端口补丁到APK中,你的应用程序将在运行时使用该代码,而不是原生api。这个过程被称为脱糖。
我们可以使用Java 8使用:
在构建。gradle (Project: myProject)添加以下内容 类路径的me.tatarka: gradle-retrolambda: x.x。x ' / / x.x。X是最新版本 在构建。gradle (Module: myModule 应用插件:'me.tatarka.retrolambda' compileOptions { sourceCompatibility JavaVersion。VERSION_1_8 targetCompatibility JavaVersion。VERSION_1_8 }
我在3年前问过这个问题,很明显,这些年来答案已经发生了变化。正如上面许多人已经回答过的那样,就在不久前,答案变成了“是的”。我从来没有更新过被接受的答案,因为它是当时的正确答案。(我不确定堆栈溢出策略是什么)
我只是想给那些还在搜索这个话题的人补充一个答案。截至2017年5月17日,谷歌还宣布Kotlin也是Android开发的官方语言。
我还没有找到官方的新闻稿,但我确实看了一些谷歌的I/O视频。这里是Kotlin团队关于公告的一篇博客文章的链接。