17

在基于此页面的 android 中Java 8 Languages Features android 仅在api 24 及更高版本中工作,或者您可以在低于 api 24的 api 中使用,如果您可以使用此功能,android 中哪个最小版本的 api支持这些功能

4

3 回答 3

22

更新: 从 Android Studio 2.4 开始,Jack 编译器将被弃用,Java 8 支持将集成到默认构建链中。一些 Java 8 功能在任何 API 级别上都可用,一些仍然限于 API >= 24,请参阅:

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

老答案:

Java 8 功能从 API 级别 9 开始可用,但前提是您使用 Android Studio 2.1(预览版)和 Android N Preview SDK

http://android-developers.blogspot.de/2016/03/first-preview-of-android-n-developer.html

改进的 Java 8 语言支持 - 我们很高兴将 Java 8 语言功能引入 Android。借助 Android 的 Jack 编译器,您现在可以在 Gingerbread 等 Android 版本上使用许多流行的 Java 8 语言功能,包括 lambda 等。新功能有助于减少样板代码。例如,当提供事件监听器时,lambdas 可以替换匿名内部类。一些 Java 8 语言特性——比如默认和静态方法、流和函数式接口——现在也可以在 N 及更高版本上使用。对于 Jack,我们期待更密切地跟踪 Java 语言,同时保持向后兼容性。

于 2016-03-11T07:37:30.357 回答
6

更新
Jack 工具链已弃用。如果您使用 android 插件版本 2.4.0-alpha4(或更高版本),Java8 功能将进入标准工具链。更多信息在这里

原始答案 Java 8 功能可用于 API N 和更新版本,但 lambda 除外。Lambda 被反向移植(使用匿名类)回到 Gingerbread。

Android N 基于匿名类实现 lambda 表达式。这种方法允许它们在早期版本的 Android 上向后兼容和执行。

要对此进行测试,您需要 Android Studio 2.1 预览版、安装的 JDK 8 和最新的构建工具。

示例构建配置:

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0 rc1"

    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        jackOptions {
            enabled true
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
于 2016-03-11T09:21:46.263 回答
-5

更新
从 Android Studio 2.4 开始,Jack 编译器将被弃用。
Android Studio 3.0及更高版本支持所有 Java 7 语言功能和 Java 8 语言功能的子集,这些功能因平台版本而异。

官方文档中的所有信息: https ://developer.android.com/studio/write/java8-support

也可以直接在对应的build.gradle文件中配置:

只需配置:

android {
  ...
  // Configure only for each module that uses Java 8
  // language features (either in its source code or
  // through dependencies).
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
  // For Kotlin projects
  kotlinOptions {
    jvmTarget = "1.8"
  }
}

OLD(答案)要针对 Android N
平台 编译您的应用程序,您必须使用 JAVA 8。

要针对 Android N 平台编译您的应用程序,您需要使用 Java 8 开发工具包 (JDK 8),并且为了在 Android Studio 2.1 中使用一些工具,您需要安装 Java 8 运行时环境 (JRE 8)。

于 2016-03-11T08:06:30.673 回答