我有一個項目使用兩個獨立的Android庫。他們每個人都包含Android支持包,以至於在「dex」步驟上螞蟻構建失敗:兩個Android庫複製相同的jar - Ant構建錯誤
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat;
[dx] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[dx] at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[dx] at com.android.dx.command.dexer.Main.processClass(Main.java:486)
[dx] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
[dx] at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[dx] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
[dx] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
[dx] at com.android.dx.command.dexer.Main.processOne(Main.java:418)
[dx] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:206)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:174)
[dx] at com.android.dx.command.Main.main(Main.java:95)
[dx] 1 error; aborting
我該怎麼辦?
我打算將這些jar文件中的一個移出目標文件夾-post-compile。然後在dex步驟完成後將其移回。 你有什麼建議?
UPDATE: 我試圖移動支持包出來的一個庫中-post編譯目標,但它仍然失敗,因爲另一個原因。此jar已包含在由dex任務處理的路徑中。而dex任務無法打開刪除的jar。
你可以有一個庫依賴於其他,並添加支持包只有在那裏 – njzk2 2012-03-20 17:29:02
我也想過這個問題,但要使用它們獨立 – 2012-03-20 17:42:21
看起來它將在Android工具的r17中得到修復。 http://code.google.com/p/android/issues/detail?id=21169 – 2012-03-20 17:56:06