【问题标题】:JAXB conflicting with dataBinding on IDEA + Android pluginJAXB 与 IDEA + Android 插件上的 dataBinding 冲突
【发布时间】:2019-10-31 20:04:10
【问题描述】:

错误

org.gradle.execution.MultipleBuildFailures:构建完成,有 1 次失败。 原因:org.gradle.api.tasks.TaskExecutionException:任务':app:compileDebugJavaWithJavac'的执行失败。引起:java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

当我启用 dataBinding 并尝试在 IntelliJ IDEA 上构建时遇到此错误,使用 gradlew build 构建工作,并且在 Android Studio 上也工作。

版本

Gradle 版本:5.1.1

想法:2019.1.3

Android 插件:(截至 6 月 18 日最新)

Java:8


要重现,在 Android Studio 上创建一个项目,启用 dataBinding,然后在 IDEA 上打开它并尝试构建。

有人知道为什么会发生这些冲突吗?

【问题讨论】:

  • 你用什么JDK来运行IDE?如果是 11,请尝试切换到 1.8 JDK:jetbrains.com/help/idea/switching-boot-jdk.html#d746506e20 同时在设置中将 1.8 设置为 Gradle JVM(macOS 上的首选项)|构建、执行、部署 |构建工具 | Gradle 设置。
  • 尝试--add-modules java.xml.bind 进入设置(macOS 上的首选项)|构建、执行、部署 |构建工具 |摇篮 | Gradle 虚拟机选项.

标签: java android intellij-idea jaxb


【解决方案1】:

来自@Andrey 的评论:

--add-modules "java.xml.bind" 进入设置(macOS 上的首选项)|构建、执行、部署 |构建工具 |摇篮 | Gradle 虚拟机选项。

编辑:起初这可行,但在创建数据绑定布局后发生了同样的错误。

【讨论】:

  • gradle VM 选项在哪里?
  • 我现在也找不到,但是在 gradle.properties 中使用org.gradle.jvmargs=--add-modules java.xml.bind 应该有同样的效果。但是这个选项并没有最终解决问题。
【解决方案2】:

试试这个:

右键单击一个项目模块 -> 打开模块设置 -> 平台设置 | SDKs -> 点击 SDKs 列表中的每个 Android Api。并确保选择 Java SDK 1.8

【讨论】:

    【解决方案3】:

    Android Studio 3.6.3 在 Windows 上,

    转到文件 -> 项目结构(快捷键:Ctrl+Alt+Shift+S)

    导航到 SDK 位置

    JDK 位置 下拉列表中,选择 Embedded JDK

    P.S. 阅读this answer 了解可能的原因。所以使用嵌入式JDK是最安全的选择。

    【讨论】:

      【解决方案4】:

      Artic Fox Android 工作室版:

      文件 > 项目结构 > 有选项“JDK 位置已移至 Gradle 设置。

      点击Gradle设置

      Gradle JDK 下拉选项,从下拉列表中选择您合适的 jdk 版本

      在此之后同步您的项目并创建构建。

      【讨论】:

        猜你喜欢
        • 2017-07-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-17
        • 2011-06-18
        • 2015-01-28
        • 1970-01-01
        • 2015-01-10
        相关资源
        最近更新 更多