Разрешение «двойного определения класса библиотеки» в ProGuard - PullRequest
7 голосов
/ 07 декабря 2011

У меня есть проект Java, который включает в себя библиотеку Xerces.

Когда я обрабатываю проект с помощью Proguard, я получаю предупреждение:

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

Я вижу в Xerces, что этот класс существует и что тот же класс существует в rt.jar JDK 1.6.

Файл jar, созданный ProGuard, не запускается (ошибка: «Возникла исключительная ситуация Java»). Как я могу решить эту проблему? Thx!


(примечание: я работаю с Netbeans)

1 Ответ

12 голосов
/ 07 декабря 2011

1) Либо вы должны удалить класс из одной из библиотек (что не рекомендуется, поскольку это может нарушить работу других классов)

2) Найти банку без этого класса.Например, класс, который вы используете в своем приложении, может быть доступен в нескольких банках.Так что получите jar, где этот конфликтующий класс отсутствует, но присутствуют другие классы, которые вы хотите (это может занять некоторое время)

3) (и лучше всего) просто игнорируйте ошибкуЯ не думаю, что это должно создать какие-либо проблемы.Основываясь на том, какой jar встречается первым в пути класса, класс будет выбран.

...