Сбой преобразования в формат Dalvik с ошибкой 1

#android #android-emulator #dalvik

#Android #android-эмулятор #dalvik

Вопрос:

вот моя ошибка :

 UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lorg/codehaus/jackson/Base64Variant;
Conversion to Dalvik format failed with error 1
  

Ну, 5 минут назад это сработало. Ничего не изменилось (только снова запустил эмулятор Android) — так что же происходит сейчас?

Спасибо, ребята.

Ответ №1:

Ваш набор инструментов вызывается dx с несколькими копиями синтаксического анализатора Jackson JSON. Вы захотите убедиться, что библиотеки вашего проекта не содержат двух копий Jackson. Вы можете увидеть, содержит ли отдельный файл jar Джексона с jar и grep :

 jar tvf lib/some-library.jar | grep jackson
  

Ответ №2:

Я получил ту же ошибку из-за внешнего jar, который я импортировал. Оказалось, что во внешнем jar были повторяющиеся записи для каждого класса. Решением было заново создать файл jar для внешней библиотеки с duplicate=»preserve» в элементе jar в файле сборки ant (у меня был доступ к полному исходному коду для внешней библиотеки).

 <jar destfile="${buildlib}/external.jar" manifest="${lib}/external.manifest" basedir="${dest}" duplicate="preserve">
  

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

Ответ №3:

У меня была очень похожая проблема с невозможностью выполнить dex: несколько файлов dex определяют Lorg / codehaus / jackson / Base64Variant с использованием API Google Drive и API Google Spreadsheet.

Перепробовал все обычные методы исправления Eclipse, очистку, перестройку, запуск / остановку Eclipse, новое рабочее пространство и т.д.

Если вы используете Eclipse, вот как я решил проблему без необходимости управлять файлами .jar.

1) В Eclipse щелкните правой кнопкой мыши свойства вашего проекта

2) Нажмите на компилятор Java

3) Нажмите на создание

4) Нажмите «Настроить параметры рабочей области»

5) Нажмите Включить настройки для конкретного проекта

6) Нажмите на папку вывода

7) Нажмите «Восстановить файлы класса, измененные другими»

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