"Ошибка преобразования в формат Dalvik с ошибкой 1" - только при экспорте
Я знаю, что это повторяющийся вопрос, но я прочитал и пробовал каждое решение на этом сайте, и я все еще получаю ошибку; Кроме того, я получаю его ТОЛЬКО, когда я экспортирую подписанный apk из Eclipse. Я могу построить и запустить unsigned apk.
У меня есть:
- Удалены (и позже восстановлены) все библиотеки из пути сборки
- Очистить и перестроить все мои проекты
- Перезапуск Eclipse с опцией -clean
- Восстановить проект приложения с нуля
Я знаю, что ошибка 1 означает, что у меня есть повторяющиеся символы, но я проверил, очистил и перестроил мой путь сборки миллион раз, и я все еще получаю ошибку, , только когда я экспортирую.
- Если бы у меня были повторяющиеся символы, я бы не получил ошибку 1 для моего беззнакового apk тоже?
- Если у меня действительно есть повторяющиеся символы, как я могу заставить Eclipse сказать мне, что это такое? Все, что я получаю от мастера экспорта, - это диалоговое окно с одной строкой.: (
- У меня нет ошибок, когда я вручную подписываю apk, но когда я устанавливаю его на телефоне, я получаю простую ошибку: "Приложение не установлено".: (: (
Моя структура проекта выглядит следующим образом:
- Один проект библиотеки Android с 99% моего кода. Он имеет одну копию необходимых файлов jar в пути сборки.
- Один проект приложения для Android с двумя классами. Он ссылается на проект библиотеки через вкладку Android, а не на путь сборки Java. В пути сборки нет дополнительных источников, проектов или библиотек, кроме Android 2.1. Я даже воссоздал этот проект с нуля (я не воссоздал проект библиотеки, потому что он намного больше).
Все работало несколько дней назад! Любые предложения очень ценятся!
Спасибо заранее...
EDIT-UPDATE: Ошибка при отключении Proguard. Очень странно.
Ответы
Ответ 1
Это проблема с Proguard в инструментах разработчика Windows - отредактируйте Android SDK\tools\proguard\bin\Proguard.bat
Заменить:
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
Сохраните ссылку на это решение, потому что в следующий раз, когда вы обновите инструменты SDK, он, вероятно, будет повторно введен (присутствует в последних нескольких выпусках).
Ответ 2
Обновите свою Proguard до последней версии, то есть 4.7...
Загрузите zip из http://sourceforge.net/projects/proguard/files/latest/download?source=files.... затем скопируйте папки "lib" и "bin" из zip в ваш sdk/tools/proguard/заменить по умолчанию или сказать старые "bin" и "lib".... попробуйте экспортировать свой проект еще раз...
Ответ 3
Перейдите в проект и отмените выбор Build Automatically. Затем очистите проект и создайте все. Работала для меня, чтобы экспортировать подписанный пакет приложений
Ответ 4
Это тоже сводило меня с ума. Я все пробовал, менял все свои внешние библиотеки и так далее, но ничего не получилось. Я пробовал более новую версию proguard без успеха.
Оказывается, я использовал библиотеку под названием "GridLayout" для поддержки старых устройств. После того как я переименовал класс "GridLayout" в "CustomGridLayout", он отлично работал. Похоже, вы не можете дублировать имена классов.
Ответ 5
Вот ключ, который работал у меня
http://android.foxykeep.com/dev/fix-the-conversion-to-dalvik-format-failed-with-error-1-with-adt-14
Предположительно фиксированный в ADT-15, обходной путь
1) Для каждого элемента X_src щелкните правой кнопкой мыши по нему, а затем выберите "Путь сборки" > "Удалить из пути сборки".
2) Всплывающее окно откроется. Убедитесь, что "Отсоединение папки от проекта" также проверено, а затем подтвердите ее.
Вы все еще можете отлаживать код библиотеки, но вам нужно управлять своими точками останова в этих проектах, а затем выполнять код на вкладках файла класса.
Ответ 6
Я попробовал несколько из вышеупомянутых решений и не повезло. Затем я закрыл Eclipse и снова открыл его и смог успешно экспортировать. Если я попробую еще раз, это не сработает.
Итак, я думаю, может быть, я получаю только один успешный экспорт за "открытый" Eclipse. Не идеальное решение любым способом, но когда все остальное не дает ему выстрела. Это сработало для меня.
Ответ 7
Принятый ответ на этот вопрос (с 2011 года) не сработал у меня. Однако правильный ответ на этот вопрос размещен здесь:
Экспорт Android дает "Ошибка конвертации в формат Dalvik с ошибкой1" и
Ответ 8
Unselect Build Automatically работает для меня. Танки anjaneya;
0) Отменить автоматическую сборку
1) Очистить проект
2) Построить проект.
3) Экспорт подписанного приложения в опции Инструменты Android.