2011-05-10 43 views
1

這裏是我的錯誤:轉換爲Dalvik的格式失敗,錯誤1

UNEXPECTED TOP-LEVEL EXCEPTION: 
java.lang.IllegalArgumentException: already added: Lorg/codehaus/jackson/Base64Variant; 
Conversion to Dalvik format failed with error 1 

好,5分鐘前,它的工作。沒有改變任何東西(只能再次啓動Android模擬器) - 那麼現在發生了什麼?

謝謝你們。

+0

發現我的錯誤,是螞蟻 – tsync 2011-05-10 12:55:39

回答

2

您的工具鏈使用Jackson JSON解析器的多個副本調用dx。你會想確保你的項目庫不包含Jackson的兩個副本。你可以看到,如果一個單獨的jar文件包含傑克遜jargrep

jar tvf lib/some-library.jar | grep jackson 
0

我得到了同樣的錯誤,由於我被導入外部罐子。原來,外部jar有每個類重複的條目。解決的辦法是在ant build文件(我有權訪問外部庫的完整源代碼)中爲jar元素重新創建外部庫的jar文件。

<jar destfile="${buildlib}/external.jar" manifest="${lib}/external.manifest" basedir="${dest}" duplicate="preserve"> 

如果您沒有訪問Ant構建文件,你可以手動取消-JAR的jar文件,再刪除重複和重新罐子它。

0

我有一個非常類似的問題,無法執行dex:多個dex文件使用Google Drive api和Google Spreadsheet api定義了Lorg/codehaus/jackson/Base64Variant。

嘗試了所有的常用Eclipse的修復方法,乾淨,改造,啓動/如果你使用的是Eclipse的Eclipse停止,新的工作區等

,這是我如何解決它,而無需管理的.jar的。

1)在Eclipse中,右鍵點擊你的項目屬性

2)點擊Java編譯器

3)點擊

4號樓),點擊配置工作區設置

5)點擊啓用項目特定設置

6)單擊輸出文件夾

7)點擊'重建他人修改的類文件'

希望這會有所幫助。

相關問題