Proguard вернул код ошибки 1. (Неверный синтаксис имени файла, имени каталога или метки тома)

Я только что обновился до последней версии ADT (19) и снова получаю жалобы от ProGuard, но на этот раз хуже, чем обычно. Я прочитал десятки вопросов об этой ошибке, но на этот раз ни один из ответов не работает.

Когда я пытаюсь экспортировать подписанный APK, консоль говорит:

Proguard вернулся с кодом ошибки 1. См. консоль

Ошибка: @C:\Users\Barry\AppData\Local\Temp\android_8523956309172274256.pro (неверный синтаксис имени файла, имени каталога или метки тома)

Я подтвердил, что файл существует (я читал в другом месте @ является частью сообщения об ошибке, а не частью имени файла). Я думаю, что эта ошибка жалуется на путь к файлу, а не на его содержимое, но на всякий случай я включил содержимое ниже.

EDIT: я подтвердил в документах ProGuard, что @ должен быть там. Это часть синтаксиса командной строки.

  • Я использую последнюю версию Proguard (4.8)
  • Я использую последний подключаемый модуль ADT Eclipse (18.0.0)
  • Я использую последние инструменты Android SDK (19) и последние инструменты платформы Android SDK (11).
  • ProGuard не сообщает об отсутствующих классах (или о чем-то еще)
  • Я очистил и перестроил свой проект
  • Я использую Windows 7 64-бит

Раньше я исправлял ошибки ProGuard после обновления ADT, изменяя параметр %@ в proguard.bat как рекомендует этот поток. Вышеупомянутая ошибка совершенно нова для меня. Я нашел только один другой отчет в этой теме, но плакат исправил это, обновив ProGuard 4.8. Мне не повезло. :(

Заранее спасибо...

EDIT: когда я запускал ProGuard вручную с указанными выше входными банками, он сообщал о пропущенных классах из-за отсутствующих банок (хотя я никогда не видел этого в консоли). Проблема в том, что я до сих пор не знаю, почему ProGuard или ADT генерируют файлы .pro с отсутствующими jar-файлами, поскольку они находятся на моем пути сборки и работали с предыдущим ADT.

Содержимое файла выше:

C:\Users\Barry\dev\workspace\MY-PROJECT\proguard.cfg

-injars C:\Users\Barry\AppData\Local\Temp\android_824795077905177388.jar;C:\Users\Barry\dev\workspace\KeyboardLib\bin\keyboardlib.jar;C:\Users\Barry\dev\android-sdk \tools\support\annotations.jar

-outjars C:\Users\Barry\AppData\Local\Temp\android_2943979964980515538.jar

-libraryjars C:\Users\Barry\dev\android-sdk\platforms\android-10\android.jar

-dump C:\Users\Barry\dev\workspace\MY-PROJECT\proguard\dump.txt

-printseeds C:\Users\Barry\dev\workspace\MY-PROJECT\proguard\seeds.txt

-printusage C:\Users\Barry\dev\workspace\MY-PROJECT\proguard\usage.txt

-printmapping C:\Users\Barry\dev\workspace\MY-PROJECT\proguard\mapping.txt

Все вышеперечисленные файлы jar существуют и содержат файлы .class, за исключением файла outjar, который существует, но имеет размер 0 байт.


person Barry Fruitman    schedule 03.06.2012    source источник
comment
В прошлый раз, когда у меня была эта проблема, я обновился до ProGuard 4.9 (ADT 21), чтобы решить ее. После обновления до ADT 22 проблема появилась снова. После нескольких часов попыток я понизил версию ProGuard до 4.8, и ошибка исчезла. Процесс сборки Android раздражает, хаотичен и, в конце концов, это просто метод проб и ошибок. Я надеюсь, что они сделают это лучше с Android Studio и сборкой Gradle...   -  person Emanuel Moecklin    schedule 19.05.2013


Ответы (3)


У меня была точно такая же проблема, как у вас. В итоге у меня сработало обновление версии proguard, упакованной с Android SDK, до 4.8. По какой-то причине proguard 4.7 был источником проблем.

Замените содержимое папок \android-sdk\tools\proguard\lib\ и \android-sdk\tools\proguard\bin\ файлами, загруженными с сайта proguard.

Я использую ADT 20.0.3.

person Pete    schedule 07.10.2012

Хорошо, я решил это для себя. К сожалению, решение откатилось на ADT 18 и ProGuard 4.7. Как ни странно, даже ProGuard 4.8 выдавал ту же ошибку с ADT 18. Я почти уверен, что это ошибка в ADT. Возможно, он несовместим с подключаемым модулем ADT Eclipse, который все еще находится в версии 18. Странно, что ADT 19 доступен через диспетчер SDK, хотя загрузка SDK по-прежнему связана с ADT 18.

Мой совет — сделать резервную копию всего, прежде чем обновлять что-либо из Google, поскольку мы все их бета-тестеры.

person Barry Fruitman    schedule 04.06.2012

Windows 7, Eclipse Juno, с использованием ADT 22.2.1.

Оригинальный Proguard был 4.6. Мне пришлось обновиться до 4.10, чтобы решить эту проблему.

person Vaiden    schedule 03.10.2013