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

Android Studio compiles project correctly, Gradlew does not with Databinding enabled

经过广泛的 google-ing 和搜索 SO,我无法找到解决我的问题的充分方法。

问题:

我的项目目前启用了数据绑定 v2,在我的 XML 中,我确实有 2 种视图模型属性的数据绑定方式。

Android Studio (v3.5.3) 能够很好地编译项目并且没有任何错误

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

javax/xml/bind/JAXBException

解决方法:

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

成功步骤:

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

这解决了什么问题

  1. fastlane 无法构建
  2. gradlew 无法构建

结论

进一步 google 搜索让我找到了几篇与 OpenJDK 11 相关的文章。显然,Android Studio 尚不支持 OpenJDK 11,但 Android Studio 4.x 将要。 -

我知道这不是一个 "actual" 问题,但我把它留在这里是希望其他任何超级沮丧的人(比如我自己)发现这个潜在的解决方案有用,并希望 Google 为这篇文章建立索引: )

详见上文解决方法

TLDR

成功步骤:

卸载 OpenJDK 11 或更高版本 运行 下面的命令 酿造水龙头 AdoptOpenJDK/openjdk brew cask 安装 adoptopenjdk8 现在 运行 ./gradlew assemble 应该可以正常工作了。