错误:数据绑定尚不支持 Jack 构建
Posted
技术标签:
【中文标题】错误:数据绑定尚不支持 Jack 构建【英文标题】:Error:Data Binding does not support Jack builds yet 【发布时间】:2016-11-13 04:37:04 【问题描述】:我正在实施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
【问题讨论】:
似乎:数据绑定不支持 Jack 构建还 @Selvin 可能是,我只是想确认我是否做错了什么。 我们正在努力... @RRR 你能检查一下你的禁用jackOptions enabled flase
是否有效。
我可以确认,在我的 Android Studio 2.2 Beta 安装上,它还不能与 DataBinding 一起使用
【参考方案1】:
从 gradle:2.2.0-alpha5 开始,Jack 构建还不兼容 DataBinding。
如果你想在 Java 8 中使用数据绑定,你可以使用retrolambda。
【讨论】:
retrolambda 不做数据绑定是吗?我从未使用过它,但它似乎超出了 lambda 支持库的范围。 Retrolambda 与数据绑定无关。 虽然不相关,但 Retrolambda 与数据绑定兼容。 那不会是 Java 8,只是 Java 8 的模拟功能(而且那些 lambda 的性能成本更高)【参考方案2】:从 yigit 的评论可以看出,由于他和 George 是 DataBinding 的项目成员,因此该功能仍在开发中。
我们正在努力……yigit
我也发现这个问题已经报告Issue 210615: Databinding with Jack compiler
更新
2.3 will allow you to use data binding with jack but it still has limitations
【讨论】:
嗯...仍然不起作用。预计可以发布了吗?【参考方案3】: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 语言 Android 构建系统现在支持 javac/dx 中的功能 编译路径。 Android Studio 的 Gradle 插件现在对 Java 8 进行脱糖 类文件转换为与 Java 7 兼容的类文件,因此您可以使用 lambdas, Java 8 的方法引用和其他特性。
来源:https://android-developers.googleblog.com/2017/04/java-8-language-features-support-update.html
【讨论】:
感谢分享,很有用。 好的,但是预览版 Android Studio 构建对于生产项目的使用风险太大。我们需要等待 2.4 稳定。顺便说一句,Jack 有时非常慢,编译需要很长时间以上是关于错误:数据绑定尚不支持 Jack 构建的主要内容,如果未能解决你的问题,请参考以下文章
vuejs怎样实现列表中checkbox的双向绑定及初始化渲