【问题标题】:android builds fine in eclipse but not on jenkins antandroid 在 Eclipse 中构建良好,但在 jenkins ant 上构建不好
【发布时间】:2013-12-12 18:25:55
【问题描述】:

我最近添加了罐子 joda-time-2.3 和 joda-time-2.3-sources。我的项目在 Eclipse 上继续运行良好,但 jenkins (ant) 正在崩溃。有谁知道如何解决这个问题?

[dx] UNEXPECTED TOP-LEVEL EXCEPTION: 
[dx] com.android.dx.util.DexException: Multiple dex files define Lorg/joda/time/Chronology; 
[dx] at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592) 
[dx] at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550) 
[dx] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531) 
[dx] at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168) 
[dx] at com.android.dx.merge.DexMerger.merge(DexMerger.java:186) 
[dx] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300) 
[dx] at com.android.dx.command.dexer.Main.run(Main.java:232) 
[dx] at com.android.dx.command.dexer.Main.main(Main.java:174) 
[dx] at com.android.dx.command.Main.main(Main.java:91) 

编辑

一旦找到一个来源,我如何告诉 Jenkins/ant 停止查找?假设这是问题所在。

【问题讨论】:

  • 我最好的猜测是 joda-time-2.3-sources jar 文件也包含类文件。您可以通过简单地检查 jar 的内容来验证这一点。
  • 顺便说一句,您的项目中是否有需要该 jar (joda-time-2.3-sources.jar) 的原因?如果你已经在另一个 jar 中编译了类,那么你可以简单地删除 joda-time-2.3-sources.jar 并且一切都应该很好。
  • 我通过删除 joda-time-2.3.jar 尝试了您的想法,但随后 eclipse 失败了。我想如果源有类,那么我不应该同时需要。
  • 源代码使编码更容易。我可以看看文档。
  • 你需要一个或另一个。通常首选非源版本。源版本什么也没给你买。该源代码未在 Eclipse 或 Jenkins 中编译。它仅供参考....因此,要解决您的问题,请尝试使用另一个 jar。另外,不要忘记在对文件系统进行更改后刷新您的 Eclipse 项目。

标签: java android eclipse ant jenkins


【解决方案1】:

joda-time-2.3-sources.jar 也包含类文件。

解决方案是简单地从您的项目中删除 joda-time-2.3-sources.jar。

joda-time-2.3.jar 包含您需要的所有类。包含另一个 jar 就是引入相同类的多个实例。

【讨论】:

  • 没有。如果我只留下源代码,eclipse 将无法编译。但如果我删除源并留下另一个,eclipse 编译。但是在我发送给詹金斯之后,我收到了同样的失败信息。所以同时拥有 source 和 bin 不是问题。我正在使用 ADT eclipse,为什么事情会在 eclipse 和 ant 上运行(嗯,你明白我的意思)?
  • 您将这些文件放在哪里?在 /lib 目录中?如果是这样,那么我很困惑为什么 Eclipse 需要源 jar。也许源 jar 中的某些类不在另一个中。无论如何,您的目标应该是只使用一个罐子。如果我的建议不起作用,那么只尝试源 jar。另外,请务必在删除其他 jar 后刷新 Eclipse 项目。
  • 抱歉给您带来了困惑。请记住,我从 joda-time-2.3 和 joda-time-2.3-sources 开始(参见 OP)。如果我删除joda-time-2.3 并保留joda-time-2.3-sources,则eclipse 不起作用。所以我保留joda-time-2.3 并删除joda-time-2.3-sources。此时,eclipse 工作正常,但 ant 仍然失败。所以我的结论是,两者都不是 ant/jenkins 失败的原因。
猜你喜欢
  • 2019-08-12
  • 2011-10-27
  • 1970-01-01
  • 2012-08-18
  • 2010-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多