2011-12-07 53 views
4

我有一個包含Xerces庫的Java項目。在ProGuard中解決「庫類的重複定義」

當我處理與Proguard的項目,我得到警告:

Note: duplicate definition of library class [org.w3c.dom.html.HTMLDOMImplementation] 

我的Xerces看到,這個類存在,並且同一類的JDK 1.6的rt.jar中存在。

由ProGuard創建的jar文件不會啓動(錯誤:「發生Java異常」)。 我該如何解決這個問題?謝謝!


(注意:我使用Netbeans工作)

回答

11

1)無論是你應該從庫中卸下類(這是不可取的,因爲它可能會破壞其他類)

2)找一個沒有這門課的罐子。對於例如您在應用程序中使用的類可能會在多個jar中提供。所以得到這個衝突類不存在的jar,但是你想要的其他類會存在(這可能需要一些時間)

3)(和最好的)只是忽略錯誤。我認爲它不應該給任何問題。基於類路徑中第一個發生的jar,該類將被拾取。

+2

*不*忽略這些錯誤。他們可以在運行時導致ClassCastExceptions。最好的方法是#1 - 從庫中移除類,因爲它是重複的。 –