68

我更新了我的androidstudio 2.1 stable.As per Android Studio 2.1 support Android N Developer Preview Android studio 2.1 support Jack (Java Android Compiler Kit) compiler。

如何在 android studio 中添加或使用 Jack?

笔记:

根据Android 上的 Java 8 Language Feature Support,不推荐使用 Jack 工具链。但是,您可以继续使用它来启用 Java 8 语言功能,直到有替代品可用。

截至 2017 年 3 月 14 日的公告,Jack 工具链已被弃用。Jack 是 Android 6.0–8.1 的默认 Android 构建工具链。

https://source.android.com/source/jack

4

6 回答 6

137

有关使用 Jack 的要求以及如何使用的详细信息,请参阅文档

这是文档中build.gradle有关如何使用jackOptions和设置compileOptionsfor java 1.8 的相关部分。

android {
    ...
    defaultConfig {
        ...
        jackOptions {
            enabled true
        }
    }

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

更新

根据这篇文章, Jack 工具链现在被认为已被弃用,根据这篇文章,正在努力在未来几周内将原生支持 Java 8 功能作为 Android 构建系统的一部分。

该帖子还提到,如果您仍然想尝试使用 Jack 启用 Java 8 功能,那么从 Jack 迁移到新方法应该几乎没有工作。

UPDATE 2 Preview 内置支持

您现在可以使用最新的 Android Studio 预览版 2.4 预览版 6 试用对 Java 8 的新内置支持。

有关如何启用它或从 Jack 或 Retrolambda 迁移的更多信息,请参阅文档

于 2016-04-27T04:47:46.693 回答
12

您可以通过在 build.gradle 文件中添加以下行来启用 jack 编译器。

android{

compileSdkVersion 23

buildToolsVersion "24rc2"

defaultConfig {
    ...
    jackOptions {
        enabled true
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}}
于 2016-04-28T00:46:15.247 回答
6

Jack/Jill 将在不久的将来被遗弃,请参阅 Google 帖子。 https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html

于 2017-03-16T09:40:21.200 回答
2

1- build.gradle(模块)

defaultConfig {
        //remove jackOptions 
        jackOptions {
            enabled true
        }
    }

2-如果您使用使用 Java 8 build.gradle (Project) 的第三方

buildscript {
    dependencies {
        //remove this line of your third-party dependency
        classpath 'PATH<VERSION>'
    }
}

3-remove retrolamda,apply plugin '..labmda'从你的模块 gradle 中删除这些行

4-添加到 build.gradle(模块)

android {

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
于 2018-10-22T20:48:16.917 回答
0

插入块android{}

jackOptions {
            enabled true
        }

它解决方案

于 2017-05-12T12:02:26.630 回答
0

Android Studio 3 版本支持 Java 8,jackOptions不再需要所有这些。

Jack 不再受支持,您应该首先禁用 Jack 以使用默认工具链中内置的改进的 Java 8 支持。

有关更多详细信息,请阅读此链接:

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

于 2017-07-26T08:53:07.730 回答