为了账号安全,请及时绑定邮箱和手机立即绑定

Gradle lint 和测试构建错误 - JAXBException 和库中的无效包引用

Gradle lint 和测试构建错误 - JAXBException 和库中的无效包引用

噜噜哒 2023-03-31 14:52:58
今天我试图将一个 Android 项目添加到我正在运行 ./gradlew lint test 的 CIRCLE CI 中,以检查构建是否通过。问题是我遇到了一些烦人的错误,我花了好几个小时才解决它们:在我的本地机器上,我得到:java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException在 CIRCLE CI 上抛出以下错误:前 3 个错误(共 10 个)是:/home/circleci/.gradle/caches/modules-2/files-2.1/javax.activation/activation/1.1.1/485de3a253e23f645037828c07f1d7f1af40763a/activation-1.1.1.jar: Error : 库中的包引用无效;未包含在 Android 中:java.awt.datatransfer。从 javax.activation.ActivationDataFlavor 引用。[InvalidPackage] /home/circleci/.gradle/caches/modules-2/files-2.1/javax.activation/activation/1.1.1/485de3a253e23f645037828c07f1d7f1af40763a/activation-1.1.1.jar:错误:库中的包引用无效;未包含在 Android 中:java.awt.event。引用自 com.sun.activation.viewers.TextEditor。[InvalidPackage] /home/circleci/.gradle/caches/modules-2/files-2.1/javax.activation/activation/1.1.1/485de3a253e23f645037828c07f1d7f1af40763a/activation-1.1.1.jar:错误:库中的包引用无效;未包含在 Android 中:java.awt。引用自 com.sun.activation.viewers.ImageViewer。[无效包]我在我的 android 项目中使用数据绑定,以及 livedata 和 androidx。我已经在网上搜索了几个小时,但没有任何帮助。我试图通过以下方式消除错误:lintOptions {        abortOnError true        lintConfig file("lint.xml")    }和 lint.xml:<lint><issue id="InvalidPackage">    <ignore path="**/activation*.jar"/></issue></lint>在此先感谢您的帮助。如果需要,请询问更多信息!
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

此错误是由您的 JDK 版本引起的(此 SO答案中有更好的解释)

在 Mac 上,您可以尝试使用 brew 安装 JDK8 来解决问题。

为此:

  1. 从这个网站安装 Brew

  2. 运行brew tap adoptopenjdk/openjdk启用adopto open jdk formulas(官方已经没有了)。

  3. 运行brew cask install adoptopenjdk/openjdk/adoptopenjdk8安装open jdk 8

  4. 运行brew install jenv以安装 jenv(Java 版本管理器)

  5. 运行echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc并且 echo 'eval "$(jenv init -)"' >> ~/.zshrc如果你使用 ZSH 或者echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile如果 echo 'eval "$(jenv init -)"' >> ~/.bash_profile你使用 BASH

  6. 关闭并再次打开控制台

  7. 运行jenv add Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home添加jdk版本8

  8. 运行jenv versions以列出您已安装的版本

  9. 跑去jenv global <name of version>换另一个

在此网站上了解有关 jenv 的更多信息您还可以按文件夹而不是全局配置 java 版本


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信