在网上搜索,还不清楚Android开发是否支持Java 8。
在我下载/安装Java 8之前,能不能有人给我指出任何“官方”文档,说Java 8是或不支持Android开发。
在网上搜索,还不清楚Android开发是否支持Java 8。
在我下载/安装Java 8之前,能不能有人给我指出任何“官方”文档,说Java 8是或不支持Android开发。
当前回答
点击此链接获取最新更新。使用Java 8语言特性
旧的答案
在Android N预览版中,Android支持Java 8的有限功能,请参阅Java 8语言功能
要开始使用这些功能,你需要下载并设置Android Studio 2.1和Android N预览SDK,其中包括 要求杰克工具链和更新的Android插件为Gradle。如果你 还没有安装Android N预览SDK,请参见设置开发 Android N。
支持Java 8语言特性和api
Android目前不支持所有Java 8语言特性。 但是,在开发应用程序时,现在可以使用以下功能 针对Android N预览版:
默认和静态接口方法
Lambda表达式(API级别23及以下也可用)
可重复的注释
方法参考(API级别23及以下也可用)
还有一些额外的Java 8功能,Android支持,你可以看到完整的Java 8语言功能细节
更新
注意:Android N基于lambda表达式的实现 匿名类。这种方法允许他们后退 兼容和可执行的早期版本的Android。测试 早期版本的Lambda表达式,记得去你的 构建。将“compileSdkVersion”和“targetSdkVersion”设置为 23或更低。
更新2
现在Android studio 3.0稳定版支持Java 8库和Java 8语言特性(没有Jack编译器)。
其他回答
是的。我们将很快使用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。
谷歌刚刚宣布Java 8将被Android原生支持,Jack工具链将弃用:
我们已经决定将对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 studio 2.3.2):
构建。gradle(项目)
buildscript {
repositories {
...
jcenter()
}
dependencies {
...
classpath 'me.tatarka:gradle-retrolambda:3.4.0' // DEPENDENCY
...
}
}
构建。gradle(模块:app)
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda' //PLUGIN
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
} // SET JAVA VERSION
...
}
点击此链接获取最新更新。使用Java 8语言特性
旧的答案
在Android N预览版中,Android支持Java 8的有限功能,请参阅Java 8语言功能
要开始使用这些功能,你需要下载并设置Android Studio 2.1和Android N预览SDK,其中包括 要求杰克工具链和更新的Android插件为Gradle。如果你 还没有安装Android N预览SDK,请参见设置开发 Android N。
支持Java 8语言特性和api
Android目前不支持所有Java 8语言特性。 但是,在开发应用程序时,现在可以使用以下功能 针对Android N预览版:
默认和静态接口方法
Lambda表达式(API级别23及以下也可用)
可重复的注释
方法参考(API级别23及以下也可用)
还有一些额外的Java 8功能,Android支持,你可以看到完整的Java 8语言功能细节
更新
注意:Android N基于lambda表达式的实现 匿名类。这种方法允许他们后退 兼容和可执行的早期版本的Android。测试 早期版本的Lambda表达式,记得去你的 构建。将“compileSdkVersion”和“targetSdkVersion”设置为 23或更低。
更新2
现在Android studio 3.0稳定版支持Java 8库和Java 8语言特性(没有Jack编译器)。