2013-12-12 4 views
0

Недавно я добавил банки joda-time-2.3 и joda-time-2.3-sources. Мой проект продолжает отлично работать на затмении, но дженкинс (муравей) ломается. Кто-нибудь знает, как это исправить?android строит отлично в затмении, но не на 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/муравей налюбоваться когда один источник найден? предполагая, что это проблема.

+0

Мое лучшее предположение заключается в том, что jar-файл joda-time-2.3-sources содержит файлы классов. Вы можете проверить это, просто изучив содержимое банки. – EJK

+0

Кстати, есть ли причина, по которой вам нужен этот jar (joda-time-2.3-sources.jar) в вашем проекте? Если у вас уже есть скомпилированные классы в другой банке, вы можете просто удалить joda-time-2.3-sources.jar, и все должно быть хорошо. – EJK

+0

Я пробовал вашу идею, удалив 'joda-time-2.3.jar', но затем затмение не срабатывает. Я думаю, если у источника есть классы, тогда мне не нужны оба. – user3093402

ответ

1

joda-time-2.3-sources.jar также содержит файлы классов.

Решение состоит в том, чтобы просто удалить joda-time-2.3-sources.jar из вашего проекта.

joda-time-2.3.jar содержит все классы, в которых вы нуждаетесь. Включение другой банки - это то, что вводит несколько экземпляров одних и тех же классов.

+0

Нет. Если я оставлю только источник, затмение не будет компилироваться. но если я удалю исходный код и оставьте другой, компиляции eclipse. Но после того, как я отправил дженкинсов, я получаю такое же сообщение об ошибке. Поэтому наличие источника и бина не является проблемой. Я использую затмение ADT, почему все будет работать на затмение и на муравье (хорошо, вы понимаете, что я имею в виду)? – user3093402

+0

Где вы помещаете эти файлы? В каталоге /lib? Если это так, то я озадачен тем, почему Eclipse потребует исходную банку. Возможно, в исходной банке есть несколько классов, которые не находятся в другом. В любом случае, ваша цель должна состоять в том, чтобы использовать только одну банку. Если мое предложение не работает, попробуйте только исходную банку. Также не забудьте обновить проект Eclipse после удаления другой банки. – EJK

+0

извините за путаницу. Помните, что я начал с «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». На данный момент, затмение отлично работает, но ant все равно. Поэтому мой вывод состоит в том, что оба они не были причиной неудачи муравья/дженкинса. – user3093402

Смежные вопросы