如何在android studio中启用Jack(Java Android Compiler Kit)

时间:2016-04-27 04:07:36

标签: android android-gradle build.gradle android-studio-2.1 jack-compiler

我已更新我的androidstudio 2.1 stable。按Android Studio 2.1 supports Android N Developer Preview Android studio 2.1支持Jack (Java Android Compiler Kit)编译器。

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

注意:

  

根据Java 8 Language Feature Support on Android,不推荐使用Jack工具链。但是,您可以继续将其用于enable Java 8 language features,直到替换可用。

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

6 个答案:

答案 0 :(得分:134)

有关使用Jack需要什么的详细信息以及如何在documentation中找到。

以下是build.gradle中有关如何使用jackOptions的文档的相关部分,并为java 1.8设置了compileOptions

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

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

<强>更新

根据this post,Jack工具链现在被认为已被弃用,并且根据该帖子,在未来几周内正在努力将Java 8功能作为Android构建系统的一部分进行本地支持。

帖子还提到,如果您仍想尝试在Jack中启用Java 8功能,那么从Jack迁移到新方法的工作应该很少甚至没有。

更新2预览内置支持

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

有关如何启用或从Jack或Retrolambda迁移的详细信息,请参阅documentation

答案 1 :(得分:12)

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

android{

compileSdkVersion 23

buildToolsVersion "24rc2"

defaultConfig {
    ...
    jackOptions {
        enabled true
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}}

答案 2 :(得分:6)

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

答案 3 :(得分:2)

1- build.gradle(模块)

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

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

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

3删除retrolamda,应用插件'.... labmda'remove these lines from your module gradle

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

android {

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

答案 4 :(得分:0)

在块android{}中插入

jackOptions {
            enabled true
        }

解决方案

答案 5 :(得分:0)

Android Studio 3版本支持Java 8,所有这些jackOptions都不需要更长时间。

  

不再支持杰克,您应首先禁用杰克使用   改进的Java 8支持内置于默认工具链中。

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

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