13

我正在实施DataBinding,它运行良好,但不允许我使用jackOptions. Data Binding does not support Jack builds yet它在构建时抛出错误。

这是我的build.gradle

android {


   defaultConfig {
       ...

       dataBinding {
           enabled true
       }

       jackOptions {
           enabled true
       }
   }

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

3 回答 3

9

从 yigit 的评论中可以清楚地看出,此功能仍在开发中,因为他和 George 是 DataBinding 的项目成员。

我们正在努力... yigit

我还发现该问题已报告问题 210615:使用 Jack 编译器进行数据绑定

更新

2.3 将允许您使用与 jack 的数据绑定,但它仍然有限制

于 2016-07-19T12:13:53.280 回答
2

Google 会将对 Java 8 语言功能的支持直接添加到当前的 javac 和 dx 工具集中,并弃用 Jack 工具链。

看看这个,Android 上 Java 8 语言功能支持的未来

https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html

更新

Android 构建系统现在支持 Java 8 语言功能

昨天,我们发布了 Android Studio 2.4 Preview 6。Java 8 语言功能现在在 javac/dx 编译路径中被 Android 构建系统支持。Android Studio 的 Gradle 插件现在将 Java 8 类文件脱糖为 Java 7 兼容的类文件,因此您可以使用 Java 8 的 lambda、方法引用和其他功能。

来源:https ://android-developers.googleblog.com/2017/04/java-8-language-features-support-update.html

于 2017-03-16T08:20:00.400 回答
0

从 gradle:2.2.0-alpha5 开始,Jack 构建还不兼容 DataBinding。

如果你想在 Java 8 中使用数据绑定,你可以使用retrolambda

于 2016-07-17T09:58:22.773 回答