Сегодня угрохал практически весь рабочий день на поиск решения проблемы. Понадобилось собрать тестовую версию моего приложения, изменил одну опцию в проекте, выбрал команду Export Android Application в Eclipse и… получил ошибку “Conversion to Dalvik format failed with error 1″.
Советов в интернет по поводу этой ошибки много. Следуя им, я переустановил несколько библиотек SDK, удалял из Eclipse свои проекты и заново их добавлял, запускал eclipse.exe -clean. Не успел последовать совету “снесите все и поставьте заново”, угрохал бы еще вечер впридачу.
Слава высшим силам, нашелся-таки правильный для моей ситуации совет. В чем проблема: недавно обновился набор инструментов, Android SDK tools до версии 12. В частности, гугл прилично улучшил Layout Editor, редактор окон Android приложений. Похоже, в этот пакет инструментов включен и ProGuard, утилита защиты андроид приложений от реверс-инжениринга. Утилита вызывается на финальном этапе сборки андроид приложения через командный файл:
(путь к установленному SDK)\tools\proguard\bin\proguard.bat
И этот файл неправильный для нового комплекта SDK Tools версии 12. Вот рецепт исправления ошибки:
Измените строку
call %java_exe% -jar “%PROGUARD_HOME%”\lib\proguard.jar %*
на
call %java_exe% -jar “%PROGUARD_HOME%”\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
P.S. В ветке обсуждения проблемы были и другие варианты – обновить ProGuard, а также откатиться на SDK Tools 11.