【问题标题】:Android build fail in eclipse with a dx error when exporting maven dependencies导出 Maven 依赖项时,Android 构建在 Eclipse 中失败并出现 dx 错误
【发布时间】:2013-09-09 22:58:06
【问题描述】:

使用命令行运行!

在命令行mvn install android:deploy android:run 工作正常。

使用 Eclipse 运行失败并出现 dx 错误

我尝试使用 eclipse run as > Android Application 运行我的应用程序

然后,它总是因错误而失败

[2013-09-10 00:19:51 - facets-mvn-integ-test] Dx 处理“javax/xml/namespace/QName.class”时遇到问题:

我的 Eclipse 配置

我使用以下 pugin:

ma​​ven 3.0.4


http://i.stack.imgur.com/afZnG.png

(我在命令行中使用相同的二进制文件 - 但它也因 eclipse 嵌入而失败)

m2e 1.4.0 和 m2e 0.4.2 的 android 配置器


http://i.stack.imgur.com/Yz9Qk.png

当我使用私有库而不是 maven 时,它在 Eclipse 中工作......

如果我没有导出 Maven 依赖项,我没有任何 dx 错误,但我显然有 ClassNotFoundException

奇怪的事实是,当我不导出 maven 库但我将完全相同的 jar un lib 文件夹(例如使用 Andrdoid 私有库导出的库)时,它工作正常。

遗憾的是,这是一个可以接受的解决方案。

当我删除 android 依赖项时它在 Eclipse 中工作......

我会挖掘,但找不到任何解决方案:我在某处阅读以从 pom.xml 中删除 android 依赖项。它适用于 Eclipse !但显然,它不再适用于命令行。

这是我实际的 pom 依赖配置

    <dependencies>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>4.1.1.4</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>jdom</artifactId>
        <version>1.1</version>
    </dependency>

因此,如果有人遇到此问题,我们将不胜感激..

【问题讨论】:

  • 注意:我注意到在 Eclipse 或 maven 命令行构建之后 bin 和目标文件夹是不同的。 - 在第一种情况下,目标是空的,但 bin 有一个名为 dexedLibs 的文件夹,其中包含我所有的库。 - 在第二种情况下,目标不为空,并且作为 classes.dex 文件。我猜是因为 dx 以成功结束
  • 看起来您的 JDom 依赖项正在拉取受限 javax.xml 包中的类。您的日志中是否还有其他错误,例如完整的堆栈跟踪?

标签: android eclipse maven


【解决方案1】:

我认为这可能是您从 Eclipse 运行应用程序的方式。尝试在 Maven Build with Goals 下定义运行或调试配置: clean install android:deploy android:run

另外,将 Base 目录设置为你的 pom 的位置。

【讨论】:

  • 谢谢@Dave。您建议在 Eclipse 中使用 Maven,就像我在命令行中使用 Maven 一样。这意味着我不会使用 m2e-android 连接器。但我真的希望 Maven 完全集成到 Eclipse 中。您的解决方案可能是我的后备...
  • 您从哪里获得这些信息?我不认为 Android m2e 会改变 Android 运行配置。如果我尝试使用 Run As > Android Application 运行 Maven Android 项目,我会收到 Dex Loader 错误。它从不运行任何 Maven 命令,因此构建完全被冲洗。我认为您必须使用 Maven Build 配置来利用 m2e。它有点类似于从命令行使用 Maven,但即使命令行构建工作我仍然遇到问题。
  • 我知道它是什么以及是谁制作的。我在问你为什么认为它应该影响调试/运行配置。我没有看到任何提及,我也不认为这是有道理的。一个插件如何改变另一个插件的 GUI 回调?即使有可能,这也是一种糟糕的做法。
猜你喜欢
  • 2013-04-14
  • 2015-04-14
  • 2021-01-25
  • 2012-06-16
  • 1970-01-01
  • 2021-11-08
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多