2012-04-10 57 views

回答

9

通過搜索各種論壇,谷歌和stackoverflow後,我似乎得到了一個自己的解決方案,並認爲分享它。

  1. 每當你要鏈接外部庫,更好地創建/ lib文件夾中的鏈接,並轉儲這些.jar文件有(意思是複製的文件,而不是將它們連接起來)。將它們鏈接使用Eclipse - > Build Properties - > Configure Build path - > Library tab - >添加外部Jars。添加保存在/ lib文件夾中的必需.jars文件。 (注意,在Eclipse中作爲「引用庫」包含的jar會在/ lib文件夾中消失!但是,不要擔心正確的鏈接發生了。另一個注意事項是檢查被引用的/ lib jar是否應該在Build Properties的Libraries選項卡中可見,因爲它將被繼承。)

  2. 另一個主要問題是使用Google API時。特別是那些使用java/javax的核心庫函數的函數。對此非常小心。錯誤在於,DalvikVM試圖鏈接這些鏈接,但是因爲發現了重複並且無法確定要引用哪個鏈接而失敗。以下是錯誤。

    Dx trouble processing "javax/xml/namespace/QName.class": 
    Ill-advised or mistaken usage of a core class (java.* or javax.*) when not building a core library. 
    

在這種情況下,我所觀察到的是,這個類中xpp3-1.1.4c.jar使用。如果您已將其複製到您的/ lib文件夾中,請刪除IT。然後清理該項目,並重新構建。此後該船順利航行。

如果存在這種重複,請對其他引用的.jar執行此操作。

乾杯!

+0

非常感謝您非常非常...... – 2012-06-08 05:31:33

+0

您的帖子已解決我的大問題....再次感謝您,我不能投你這麼多次對不起 – 2012-06-08 05:34:07

+0

非常感謝,你已經解決了我的問題太!! – Crocodile 2013-05-03 09:13:30

2

這對我有用。我正在使用maven,xpp3-1.1.4c依賴項出現在「Maven Dependencies」下。我必須使用(右鍵單擊依賴項)Maven->「排除Maven Artifact ...」排除它。非常感謝 - 這真是晦澀難懂。

1

僅當您嘗試生成簽名的APK時才顯示此錯誤。 有兩種方法可以解決這個問題。

1.如評論Amira Elsayed Ismail在這篇文章this 我們應該回到gradle 2.3.3。

要做到這一點,你也應該下載Android 2.3.3工作室工作室因爲需要3.0.1的Gradle插件3.0+

這是第一個解決方案。但是恢復Android Studio和gradle插件是一個痛苦的解決方案。

2.解決所有依賴衝突。

當我恢復gradle,Studio 2.3.3顯示我們感興趣的警告(我不知道爲什麼工作室3.0。1沒有表現出相關性衝突警告

Warning:WARNING: Dependency xpp3:xpp3:1.1.4c is ignored for debug as it may be conflicting with the internal version provided by Android. Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.3.3 is ignored for debug as it may be conflicting with the internal version provided by Android.

所以這些依賴關係被忽略了調試,但NOT FOR RELEASE。 我通過排除這些依賴性來解決這個問題。

configurations { 
     all*.exclude group: 'xpp3', module: ['xpp3' ,'httpclient'] 
    } 

在此之後,我成功使用gradle 3.0.1生成簽名的APK。 (無回覆)

+2

請提供一些關於上述代碼如何回答問題以改善此答案的信息。 – 2018-02-06 17:43:18

+0

@EricHauenstein我更新了答案。 – 2018-02-07 11:16:30