Intereting Posts
Android 4.4.2 – java.lang.RuntimeException: выполнение остановки активности, которая не возобновляется Как установить тип данных в привязке необработанного запроса SQLiteDatabase? Теги приема и захвата файлов не отображаются в веб-просмотре Android: decodeFile всегда возвращает значение null для файла во внутреннем хранилище Как создать ожидающее намерения внутри класса BroadcastReceiver? Android – удаление файлов на SD-карте при удалении Как на самом деле увидеть растровое изображение, взятое из дампа кучи Android Android Curved Listview Андроидное шоу с всплывающим окном любого приложения Как ссылаться на текущую или основную деятельность из другого класса Каков наилучший способ повторить курсор Android? Фрагмент MyFragment не привязан к действию Как выполнить UnitTest службу Android, которая зависит от сетевого подключения Список поддерживаемых родных кодов телефонов Android Сетка изображений внутри ScrollView

Преобразование в формат Dalvik не удалось с ошибкой 1 в Android на экспорт (adt 21)

Я знаю, что форма этого вопроса есть, но я не могу найти ничего, что соответствует моему сценарию, так что вот оно.

Мое приложение компилируется и отлично работает при тестировании в эмуляторе, но когда я пытаюсь экспортировать подписанный apk, я получаю Conversion to Dalvik format failed with error 1 . Журнал ошибок Eclipse показывает эту трассировку стека:

 com.android.ide.eclipse.adt.internal.build.DexException: Conversion to Dalvik format failed with error 1 at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:751) at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:269) at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:296) at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:233) at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:218) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) 

У меня нет коллизий именования, которые, по-видимому, есть у других людей (по крайней мере, это не так в ошибке), и я в тупике, почему он работает в эмуляторе, но я не могу экспортировать.

Кстати, я не использую ProGuard.

Похоже, ADT 21 добавляет папку в ваш bin, называемый dexedLibs, который должен ускорить развертывание, помещая банки и библиотеки в предварительно скомпилированный код dex. У меня было две версии библиотеки поддержки, поэтому я удалил все файлы в папке и снова построил, и это сработало. Если я попытаюсь построить с любыми файлами там, сборка завершится неудачно, поэтому я должен удалить их перед каждым экспортом. Я использую ActionBar Sherlock, и это может противоречить предмету dexedLibs, потому что он не появится там, если папка изначально пуста.

Изменить: я использовал ActionBarSherlock, когда эта проблема возникла впервые, но недавно переключилась на ActionBarCompat . С момента переключения мне больше не нужно удалять папку dexedLibs при экспорте. Похоже, возможно, ActionBarSherlock виноват, но я не могу быть уверен.

Перейдите в проект и отмените выбор Build Automatically. Затем очистите проект и создайте все. Работала для меня, чтобы экспортировать подписанный пакет приложений

После многих попыток мне удалось выяснить причину возникновения этой проблемы. В общем, это вызвано ProGuard и, в частности, его оптимизацией. По крайней мере, в моем случае у меня было 4 поврежденных проекта с этой ошибкой, но после того, как я отключил оптимизацию ProGuard, все они были построены правильно. Итак, в вашем комментарии к конфигурации ProGuard: -оптимизации и -optimizationpasses options и add -dontoptimize

 # -optimizations ... # -optimizationpasses 5 -dontoptimize 

Надеюсь это поможет.