在网上搜索,还不清楚Android开发是否支持Java 8。
在我下载/安装Java 8之前,能不能有人给我指出任何“官方”文档,说Java 8是或不支持Android开发。
在网上搜索,还不清楚Android开发是否支持Java 8。
在我下载/安装Java 8之前,能不能有人给我指出任何“官方”文档,说Java 8是或不支持Android开发。
当前回答
是的,Android现在支持Java 8 (24.1.17)
现在这是可能的
但是你需要让你的设备rom在java 1.8上运行,并启用“jackOptions”来运行它。 Jack是运行Java 8的新的Android编译器的名字
https://developer.android.com/guide/platform/j8-jack.html
将这些行添加到build_gradle
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Java 8似乎是Android studio 2.0的运行Java引擎, 但是经过我的检查,它仍然不接受java 8的语法,你现在不能从android studio中选择编译器。然而,如果你的android客户端需要函数式编程机制,你可以使用scala插件。
其他回答
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
原生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!
添加这一行到模块LVL构建等级
compileOptions { sourceCompatibility JavaVersion。VERSION_1_8 targetCompatibility JavaVersion。VERSION_1_8 }
是的。我们将很快使用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使用的Java是Java 6的分支。
从Android SDK版本19开始,您可以通过这样做来使用Java 7特性。目前还没有完全支持Java 8。