Proguard возвращается с кодом ошибки 1. После обновления с ADT 16 до 18

Раньше я имел Proguard 4.6 отлично работает для экспорта подписанных приложений на Eclipse 3.6.2.

Но как только я обновил ADT + SDK от 16.0.0.v201112150204-238534 до 18.0.0.v201203301601-306762, я больше не могу экспортировать подписанные приложения (отладочная версия работает нормально). Вместо этого я получаю следующий журнал ошибок в консоли:

Proguard returned with error code 1. See console
java.io.IOException: Can't read [\\bta\wspc\LibProj1\bin\libproj1.jar] (Can't process class [com/bta/blib/proj1/BtClsProj1.class] (Unexpected end of ZLIB input stream))
    at proguard.InputReader.readInput(InputReader.java:230)
    at proguard.InputReader.readInput(InputReader.java:200)
    at proguard.InputReader.readInput(InputReader.java:178)
    at proguard.InputReader.execute(InputReader.java:78)
    at proguard.ProGuard.readInput(ProGuard.java:196)
    at proguard.ProGuard.execute(ProGuard.java:78)
    at proguard.ProGuard.main(ProGuard.java:492)
Caused by: java.io.IOException: Can't process class [com/bta/blib/proj1/BtClsProj1.class] (Unexpected end of ZLIB input stream)
    at proguard.io.ClassReader.read(ClassReader.java:112)
    at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
    at proguard.io.JarReader.read(JarReader.java:65)
    at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
    at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
    at proguard.InputReader.readInput(InputReader.java:226)
    ... 6 more
Caused by: java.lang.RuntimeException: Unexpected end of ZLIB input stream
    at proguard.classfile.io.RuntimeDataInput.readInt(RuntimeDataInput.java:136)
    at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:77)
    at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)
    at proguard.io.ClassReader.read(ClassReader.java:91)
    ... 11 more

Я искал SO для подсказок, но единственный связанный поток, который я смог найти, это Proguard 4.7 с Eclipse SDK 3.7.1 с некоторой ссылкой на "Samsung SPen SDK 1.5", которого у меня явно нет.

Любая идея, что может быть причиной этого и как решить проблему?

Ответ 1

Проблема решена путем обновления Proguard до последней версии 4.8.

ОБНОВЛЕНИЕ:. При обновлении Proguard 4.8 эта проблема повторилась в другом проекте, который почти идентичен тому, который впервые показал проблему (он использует тот же проект библиотеки). Зная, что вся окружающая среда идентична, я не знал, почему это происходит (и почему Proguard настолько непоследователен). Примерно через два часа в погоне за моим хвостом я наконец догадался: файл proguard.cfg не был отредактирован через Eclipse, а скорее через WinMerge. Как только я скопировал (идентичный!) proguard.cfg из рабочего проекта, проблема исчезла.

По-видимому, у Proguard есть проблема с CRLF и LF.

Ответ 2

Я решил это, переключившись с OpenJDK 7 на Sun JDK 6.

Update:

Проблема вернулась с использованием JDK 6. Мое текущее решение: выключить Project → Build Automatically при экспорте.

Ответ 3

Сообщение об ошибке указывает на то, что входная банка, переданная в ProGuard, повреждена. Вы можете легко проверить это после неудачной сборки. Возможно, ваш раздел диска заполнен.

Ответ 4

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

Ответ 5

проблема решена путем комментирования строки в project.propterties i.e

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt