错误:Jack需要支持Java 8语言功能。 启用插件或删除sourceCompatibility JavaVersion.VERSION_1_8
正如在developer.android网站中所提到的
如果你的项目依赖于Jack,那么你应该迁移到使用Android Studio默认工具链中内置的Java 8支持。“Jack工具链已经被废弃了。
我需要使用lambda表达式,所以我已经禁用了插口选项,但是当我编译我的代码时,出现以下错误
Error:Jack is required to support Java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8.
以下是我的build.gradle文件的截图
检查你的com.android.tools.build:gradle
版本。
我有同样的错误。 我的解决方案
- 设置
com.android.tools.build:gradle:3.0.0-alpha6
- 更新kotlin到
1.1.3-2
- 添加到存储库
google()
我正在使用AS 3.0 Canary 6。
以下是官方链接: https : //developer.android.com/guide/platform/j8-jack.html#configuration
你必须像下面这样配置:
android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
他们已经明确写道:“即时运行”目前不能与Jack一起工作,在使用新的工具链时将被禁用。
由于Jack在编译应用程序时不生成中间类文件,因此依赖于这些(中间)文件的工具当前不能与Jack一起工作。 这些工具的一些例子是:
在类文件上运行的棉绒探测器需要应用程序类文件的工具和库(例如JaCoCo的仪器测试)
杰克与遗留工具链的工作架构。 遗留的javac工具链:
javac (.java → .class) → dx (.class → .dex)
新杰克工具链:
Jack (.java → .jack → .dex)