2012-02-14 4 views
11

Я пытаюсь использовать ProGuard в приложения для Android, который использует проект с андроид библиотеки, и я получаю следующее сообщение об ошибке:Android - Proguard дубликат запись зипа ошибка

java.io.IOException: Can't write 
    [/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar] 
    (Can't read [[email protected]] 
    (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 файл это this, а также несколько -libraryjars со ссылкой на rt.jar и пару других зависимых библиотек.

Я предполагаю, что эта проблема связана с использованием Библиотечного проекта и что proguard пытается обработать запись из проекта библиотеки дважды. Но я не был уверен, какие варианты я должен использовать, чтобы исправить это.

Любые предложения и направления приветствуются.

Обновление 1: Удалив -injars bin/classes, я смог решить эту проблему. Я предполагал, что, поскольку proguard обрабатывает как проект библиотеки, так и проект приложения, файлы .class проекта библиотеки обрабатывались дважды. Однажды в папке библиотеки библиотеки bin/classes и в другой раз в папке bin/classes проекта приложения.

+22

'Удалив bin-classes -injars - где это? –

ответ

4

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

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

+4

моя ошибка немного отличается, но у меня нет «-injars» clauses.please, помогите мне, устали от этого! Proguard возвращен с кодом ошибки 1. См. Консоль Предупреждение: невозможно записать ресурс [META-INF/MANIFEST.MF] (Дублирование записи zip [android-support-v4.jar: META-INF/MANIFEST.MF]) Предупреждение : невозможно записать ресурс [META-INF/MANIFEST.MF] (Duplicate zip entry [library.jar: META-INF/MANIFEST.MF]) – thecr0w

+0

@ thecr0w, вы решили это? – l33t

+0

@ l33t, извините, это было давно, и я ничего не могу вам сказать. – thecr0w

1

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

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

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

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