Android Studio 正确编译项目,Gradlew 没有启用数据绑定

Posted

技术标签:

【中文标题】Android Studio 正确编译项目,Gradlew 没有启用数据绑定【英文标题】:Android Studio compiles project correctly, Gradlew does not with Databinding enabled 【发布时间】:2020-05-07 14:36:43 【问题描述】:

经过广泛的谷歌搜索和搜索,我无法充分找到解决问题的方法。

问题:

我的项目当前启用了 Databinding v2,并且在我的 XML 中,我确实为视图模型属性提供了 2 路数据绑定。

android Studio (v3.5.3) 能够正常编译项目并且没有任何错误

使用命令行工具./gradlew assemble<Release_type>会导致

javax/xml/bind/JAXBException

解决办法:

在 Google 和 SO 上有 一些 提示,关于从 Java8 -> Java11 对该库所做的更改。我不完全确定更改是什么,但 Java11 不包含编译应用程序所需的任何库。经过进一步检查,我意识到我运行的是 OpenJDK 11 而不是 OpenJDK 8。根据各种消息来源,解决此问题的方法是安装 OpenJDK 8

成功的步骤:

    卸载 OpenJDK 11 或更高版本 运行以下命令
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk8
    现在运行./gradlew assemble<release_type> 应该可以按预期工作。

解决了什么问题

    fastlane 无法构建 gradlew 无法构建

结论

进一步的谷歌搜索让我找到了几篇与 OpenJDK 11 相关的文章。显然,Android Studio 还不支持 OpenJDK 11,但 Android Studio 4.x 会。 - reference to SO post

我知道这不是一个“实际”问题,但我把它留在这里是希望其他超级沮丧的人(比如我自己)发现这个潜在的解决方案很有用,并希望谷歌索引这篇文章:)

【问题讨论】:

【参考方案1】:

详细解决办法见上文

TLDR

成功的步骤:

卸载 OpenJDK 11 或更高版本 运行以下命令 冲泡点击采用OpenJDK/openjdk brew cask install 采用openjdk8 现在运行 ./gradlew assemble 应该可以正常工作了。

【讨论】:

请使用您问题上的编辑链接添加更多信息。 Post Answer 按钮应仅用于问题的完整答案。 - From Review @Nathan 如答案中所述,详细信息在原始问题中。我已经编辑以在答案部分反映完全相同的解决方案。我没有使用“发布答案按钮”,我在制定问题时勾选了“QA风格”。感谢您的反馈。

以上是关于Android Studio 正确编译项目,Gradlew 没有启用数据绑定的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio Gradle 已部署模块

android studio更新gradle失败的解决办法-转

导入android studio项目,编译失败

Android studio 报错问题

Gradle:“空”Android项目需要半分钟编译(Android Studio)

Android studio中正确引入so文件的方法