Я пытаюсь использовать proguard в приложении для Android , которое использует проект библиотеки Android , и я получаю следующую ошибку:
java.io.IOException: Can't write
[/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar]
(Can't read [proguard.ClassPathEntry@1f8d244]
(Duplicate zip entry
[be.class == android_144638064543155619.jar:com/comp/dp/library/R$anim.class]))
at proguard.OutputWriter.writeOutput(OutputWriter.java:224)
at proguard.OutputWriter.execute(OutputWriter.java:120)
at proguard.ProGuard.writeOutput(ProGuard.java:391)
at proguard.ProGuard.execute(ProGuard.java:152)
at proguard.ProGuard.main(ProGuard.java:499)
Мой файл proguard.cfg это вместе с несколькими -libraryjars
, относящимися к rt.jar
и несколькими другими зависимыми библиотеками.
Я предполагаю, что эта проблема связана с использованием Библиотечного проекта, и что proguard пытается обработать запись из библиотечного проекта дважды. Но я не был уверен, какие варианты я должен использовать, чтобы исправить это.
Любые предложения / указания приветствуются.
Обновление 1: Удалив -injars bin/classes
, я смог решить эту проблему. Я предположил, что, поскольку proguard обрабатывает как проект библиотеки, так и проект приложения, файлы .class
проекта библиотеки обрабатывались дважды. Один раз в папке bin/classes
проекта библиотеки, а другой раз в папке bin/classes
проекта приложения.