错误:需要Jack支持Java 8语言特性。

138
当我尝试在获得Android Studio 2.1和Android N SDK后,更新我的Android项目以使用Java 8时添加了。
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

我遇到了这个错误

错误:Jack需要支持Java 8语言特性。要么启用Jack,要么删除sourceCompatibility JavaVersion.VERSION_1_8。

我该怎么办?


展示 build.gradle 文件。 - user5248371
2
请参见https://dev59.com/dloU5IYBdhLWcg3w9aei#36903323 - pRaNaY
1个回答

323
错误:需要Jack支持Java 8语言特性。要么启用Jack,要么删除sourceCompatibility JavaVersion.VERSION_1_8。
该错误表示您必须启用Jack
要在Android项目中启用对Java 8的支持,您需要像这样配置您的build.gradle文件。
android {
  ...


  compileSdkVersion 23
  buildToolsVersion "24rc2"
  defaultConfig {
  ...
    jackOptions {
      enabled true
    }
  }

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

5
添加以下代码后,我收到了“Error:A problem occurred configuring project ':app'”的错误提示。 - Aditya Kamath
8
使用retroLambda解决了我的问题。 - DoronK
2
这个能和注解处理一起工作吗,还是会导致编译出错? - IgorGanapolsky
6
幸运的是,几周后我们将不再需要这个。Android将完全支持Java 8语言特性。Jack将被弃用。更多细节请参见:https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html - YYamil
@IgorGanapolsky 你能够移除jackOptions并且仍然让Java 8正常工作吗? - airowe
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接