经过广泛的谷歌搜索和搜索,我无法充分找到解决问题的方法。
问题:
我的项目当前启用了数据绑定 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>
应该按预期工作。
这解决了什么
- 快车道无法建造
- 格拉德卢无法建造
结论
进一步的谷歌搜索让我看到了几篇与OpenJDK 11相关的文章。 显然,Android Studio还不支持OpenJDK 11,但Android Studio 4.x会。 - 参考资料
我知道这不是一个"实际"的问题,但我把它留在这里,希望其他任何超级沮丧的人(比如我自己(发现这个潜在的解决方案有用,并希望谷歌索引这篇文章:)
有关详细解决方案,请参见上文
TLDR
成功步骤:
卸载 OpenJDK 11 或更高版本 运行以下命令 brew tap AdoptOpenJDK/openjdk 冲泡桶安装采用OpenJDK8 现在运行 ./gradlew 汇编应该按预期工作。