Android - ошибка ввода Proguard дубликата почтового индекса - PullRequest
12 голосов
/ 14 февраля 2012

Я пытаюсь использовать 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 проекта приложения.

Ответы [ 2 ]

4 голосов
/ 14 февраля 2012

Обновление 1 в вопросе решило мою проблему, и теперь я могу запустить свое приложение.

Этот ответ просто помечает вопрос как ответ, который я могу сделать через два дня.

2 голосов
/ 17 октября 2013

Если вы получили двойную запись почтового индекса, это означает, что она говорит, откройте банку и проверьте наличие дубликатов.

Например, проверьте, что ваш build.xml не содержит ничего подобного

<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*.class"/>
<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*"/>

Это будет включать файлы .class два раза!

...