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失败的解决办法-转