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

在我下载/安装Java 8之前,能不能有人给我指出任何“官方”文档,说Java 8是或不支持Android开发。


当前回答

Android Studio现在支持Java 8的一个子集。只需从下面的窗口进行源和目标兼容性调整:

文件——>项目结构

更多信息见下面的链接。

https://developer.android.com/studio/write/java8-support.html

其他回答

原生Java 8登陆android!终于!

从每个模块中删除Retrolambda插件和Retrolambda块 构建。gradle文件: 要禁用Jack并切换到默认工具链,只需删除 模块构建中的jackOptions块。gradle文件

要开始使用受支持的Java 8语言特性,请将Android插件更新到3.0.0(或更高版本)

从Android Studio 3.0开始,Java 8语言功能现在原生支持Android:

Lambda表达式 方法引用 类型注释(目前类型注释信息在运行时不可用,只在编译时可用); 重复注释 默认和静态接口方法(API级别24或更高,不支持即时运行);

另外,从最低API级别24开始,可以使用以下Java 8 API:

java.util.stream java.util.function java.lang.FunctionalInterface java.lang.annotation.Repeatable java.lang.reflect.AnnotatedElement.getAnnotationsByType(类) java.lang.reflect.Method.isDefault ()

将这些行添加到应用程序模块的构建中。Gradle告知项目的语言级别:

 android {
   compileOptions {
       sourceCompatibility JavaVersion.VERSION_1_8
       targetCompatibility JavaVersion.VERSION_1_8
   }

通过在gradle中添加以下内容禁用对Java 8语言特性的支持。属性文件:

android.enableDesugar=false

你已经完成了!您现在可以使用本机java8!

我想我应该发布一个更新的答案给那些寻找一些更当前的东西的人。

目前Android和Android Studio支持Java 8特性的一个子集。根据他们网站上的Android文档,谷歌说:

Support for Java 8 language features requires a new compiler called Jack. Jack is supported only on Android Studio 2.1 and higher. So if you want to use Java 8 language features, you need to use Android Studio 2.1 to build your app. If you already have Android Studio installed, make sure you update to the latest version by clicking Help > Check for Update (on Mac, Android Studio > Check for Updates). If you don't already have the IDE installed on your workstation, download Android Studio here. Supported Java 8 Language Features and APIs Android does not support all Java 8 language features. However, the following features are available when developing apps targeting Android 7.0 (API level 24): Default and static interface methods Lambda expressions (also available on API level 23 and lower) Repeatable annotations Method References (also available on API level 23 and lower) Type Annotations (also available on API level 23 and lower)

此外,以下Java 8语言api也可用:

Reflection and language-related APIs: java.lang.FunctionalInterface java.lang.annotation.Repeatable java.lang.reflect.Method.isDefault() and Reflection APIs associated with repeatable annotations, such as AnnotatedElement.getAnnotationsByType(Class) Utility APIs: java.util.function java.util.stream In order to use the new Java 8 language features, you need to also use the Jack toolchain. This new Android toolchain compiles Java language sources into Android-readable DEX bytecode, has its own .jack library format, and provides most toolchain features as part of a single tool: repackaging, shrinking, obfuscation and multidex. Here is a comparison of the two toolchains used to build Android DEX files: Legacy javac toolchain: javac (.java → .class) → dx (.class → .dex) New Jack toolchain: Jack (.java → .jack → .dex)

添加Java 8支持的最简单方法

 compileOptions {
    targetCompatibility = '1.8'
    sourceCompatibility = '1.8'
 }

只需将其添加到您的构建中。gradle文件。

是的,你可以在Android Studio中使用Java 8语言功能,但版本必须是3.0或更高。阅读这篇文章,了解如何在android studio中使用java 8特性。

https://bijay-budhathoki.blogspot.com/2020/01/use-java-8-language-features-in-android-studio.html

是的。我们将很快使用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