【发布时间】: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
我知道这不是一个“实际”问题,但我把它留在这里是希望其他超级沮丧的人(比如我自己)发现这个潜在的解决方案很有用,并希望谷歌索引这篇文章:)
【问题讨论】: