Мой проект Android использует несколько подмодулей git, помеченных как библиотеки Android.Все эти подмодули по-разному используют jar-файлы ORMlite для Android и, следовательно, jar-файлы ORMlite включены в их каталог libs
.Eclipse правильно обрабатывает эту ситуацию: он включает в себя jar-файлы ORMlite один раз во время обработки dex
и генерирует действительный .apk, но когда я запускаю сборку через ant debug
, я получаю:
[echo] Converting compiled files and external libraries into /home/webedit/.hudson/jobs/xyz/workspace/bin/classes.dex...
[apply]
[apply] UNEXPECTED TOP-LEVEL EXCEPTION:
[apply] java.lang.IllegalArgumentException: already added: Lcom/j256/ormlite/android/AndroidCompiledStatement;
[apply] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[apply] at com.android.dx.dex.file.DexFile.add(DexFile.java:143)
[apply] at com.android.dx.command.dexer.Main.processClass(Main.java:338)
[apply] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:315)
[apply] at com.android.dx.command.dexer.Main.access$100(Main.java:56)
[apply] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:266)
[apply] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
[apply] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
[apply] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
[apply] at com.android.dx.command.dexer.Main.processOne(Main.java:284)
[apply] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:220)
[apply] at com.android.dx.command.dexer.Main.run(Main.java:176)
[apply] at com.android.dx.command.dexer.Main.main(Main.java:157)
[apply] at com.android.dx.command.Main.main(Main.java:89)
Есть лилюбой способ иметь несколько копий одного и того же JAR, разбросанных по нескольким библиотекам?Могу ли я изменить настройку сборки Ant, чтобы она заработала?