如何在Android Studio中添加或使用Jack? 注意:
根据Android上的Java 8语言特性支持,Jack工具链已被弃用。然而,在替代品推出之前,您可以继续使用它来启用Java 8语言特性。
自2017年3月14日的公告以来,Jack工具链已被弃用。Jack是Android 6.0-8.1的默认Android构建工具链。
根据Android上的Java 8语言特性支持,Jack工具链已被弃用。然而,在替代品推出之前,您可以继续使用它来启用Java 8语言特性。
自2017年3月14日的公告以来,Jack工具链已被弃用。Jack是Android 6.0-8.1的默认Android构建工具链。
有关使用 Jack 所需的详细信息以及如何获取这些信息,请参阅文档。
以下是来自文档中与在 build.gradle
中使用 jackOptions
并设置 java 1.8 的 compileOptions
相关的部分。
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
更新
根据这篇文章,Jack工具链现在已被视为不推荐使用的,并且该文章中提到正在进行工作,以在未来几周内作为Android构建系统的一部分本地支持Java 8功能。
该文章还提到,如果您仍想尝试使用Jack启用Java 8功能,则迁移至新方法时应该几乎没有工作量。
更新2 预览版内置支持
您现在可以使用最新的Android Studio预览版2.4预览6尝试新的Java 8内置支持。
有关如何启用它或从Jack或Retrolambda进行迁移的更多信息,请参见文档。
android{
compileSdkVersion 23
buildToolsVersion "24rc2"
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}}
根据 Google 的帖子,Jack/Jill 将在不久的将来被弃用。 https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
1- build.gradle (模块)
defaultConfig {
//remove jackOptions
jackOptions {
enabled true
}
}
如果您使用了一个使用Java 8的第三方库,那么需要在项目的build.gradle文件中进行设置。
buildscript {
dependencies {
//remove this line of your third-party dependency
classpath 'PATH<VERSION>'
}
}
3- 移除 Retrolambda,应用插件'....labmda'从您的模块 gradle 中删除这些行
4- 添加到 build.gradle(模块)中
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Android Studio 3版本支持Java 8,所有jackOptions
已不再需要。
Jack不再受支持,您应该先禁用Jack以使用默认工具链中内置的改进的Java 8支持。
有关更多详细信息,请阅读此链接:
https://developer.android.com/studio/write/java8-support.html
在 android{}
块中插入
jackOptions {
enabled true
}
IT解决方案
在任务 ':app:compileDebugJavaWithJack' 上找不到属性 'options'。
- IgorGanapolsky