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
。
成功步骤:
- 卸载 OpenJDK 11 或更高版本
- 运行以下命令
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk8
- 现在 运行
./gradlew assemble<release_type>
应该可以正常工作了。
这解决了什么问题
- fastlane 无法构建
- gradlew 无法构建
结论
进一步 google 搜索让我找到了几篇与 OpenJDK 11 相关的文章。显然,Android Studio 尚不支持 OpenJDK 11,但 Android Studio 4.x 将要。
-
我知道这不是一个 "actual" 问题,但我把它留在这里是希望其他任何超级沮丧的人(比如我自己)发现这个潜在的解决方案有用,并希望 Google 为这篇文章建立索引: )
详见上文解决方法
TLDR
成功步骤:
卸载 OpenJDK 11 或更高版本
运行 下面的命令
酿造水龙头 AdoptOpenJDK/openjdk
brew cask 安装 adoptopenjdk8
现在 运行 ./gradlew assemble 应该可以正常工作了。
经过广泛的 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
。
成功步骤:
- 卸载 OpenJDK 11 或更高版本
- 运行以下命令
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk8
- 现在 运行
./gradlew assemble<release_type>
应该可以正常工作了。
这解决了什么问题
- fastlane 无法构建
- gradlew 无法构建
结论
进一步 google 搜索让我找到了几篇与 OpenJDK 11 相关的文章。显然,Android Studio 尚不支持 OpenJDK 11,但 Android Studio 4.x 将要。
-
我知道这不是一个 "actual" 问题,但我把它留在这里是希望其他任何超级沮丧的人(比如我自己)发现这个潜在的解决方案有用,并希望 Google 为这篇文章建立索引: )
详见上文解决方法
TLDR
成功步骤:
卸载 OpenJDK 11 或更高版本 运行 下面的命令 酿造水龙头 AdoptOpenJDK/openjdk brew cask 安装 adoptopenjdk8 现在 运行 ./gradlew assemble 应该可以正常工作了。