4

Android N Preview的官方 Java 8公告如下:

借助 Android 的 Jack 编译器,您现在可以在Gingerbread等 Android 版本上使用许多流行的 Java 8 语言功能,包括 lambda 等。(...) 一些 Java 8 语言特性——比如默认和静态方法、流和函数式接口——现在也可以在 N 及更高版本上使用。

我正在使用以下 gradle 配置minSdkVersion 15在一个小项目中尝试一些 Java 8:

android {
    compileSdkVersion 'android-N'
    buildToolsVersion '24.0.0 rc1'

    defaultConfig {
        applicationId "org.sergiiz.thermometer"
        minSdkVersion 15
        targetSdkVersion 'N'
        versionCode 1
        versionName "1.0"
        jackOptions{
            enabled true
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
   //...
}

但部署目标选择器显示minSdk(API23, N preview). 这是预期的行为吗?

在此处输入图像描述

早在 Gingerbread 就有可用的 Java 8 功能/包列表吗?您知道在 API<23 上使用 Java 8 功能需要哪些 gradle 设置或支持库吗?

4

1 回答 1

2

但是部署目标选择器显示 minSdk(API23, N preview)。这是预期的行为吗?

是的。N Developer Preview 设置为仅在 N 设备上运行。您的targetSdkVersion 'N'行隐含地将您的更改minSdkVersion为也N

您知道在 API<23 上使用 Java 8 功能需要哪些 gradle 设置或支持库吗?

我建议您不要担心旧设备上的 Java 8 功能,直到 Android N 退出“开发者预览”模式或 Android 工具团队提供特定的非 N 指令。

于 2016-03-29T18:55:33.833 回答