В моем приложении Android в Eclipse я получаю следующую ошибку.
Неожиданное исключение верхнего уровня:
java.lang.IllegalArgumentException: уже добавлено: Lorg / xmlpull / v1 / XmlPullParser;
....
Преобразование в формат Dalvik не удалось с ошибкой 1
Эта ошибка появляется только тогда, когда я добавляю определенный внешний файл JAR в свой проект. Я долго искал возможное решение, но ни одно из возможных решений не сработало.
Я даже пытался перейти на Android 1.6 вместо 1.5 (текущая версия, которую я использую).
android
dalvik
android-sdk-1.6
Мишель
источник
источник
Ответы:
Зайдите в Проект »Свойства» Java Build Path »Библиотеки и удалите все, кроме« Android XY »(в моем случае Android 1.5). нажмите ОК Перейдите в Проект »Очистить» Очистить проекты, выбранные ниже »выберите свой проект и нажмите ОК. Это должно работать.
Также возможно, что у вас есть файл JAR, расположенный где-то в папках вашего проекта (я скопировал файл JAR Admob в мою папку src), и ТОГДА добавил его как библиотеку путей Java. Он не отображается в Package Explorer, поэтому вы его не замечаете, но он учитывается дважды, вызывая страшную ошибку Dalvik 1.
Другой возможной причиной могут быть конфликты имен пакетов. Предположим, у вас есть пакет
com.abc.xyz
и класс, названныйA.java
внутри этого пакета, и другой библиотечный проект (который добавляется в зависимость этого проекта), который содержит тот же самый файл, иcom.abc.xyz.A.java
вы получите точно такую же ошибку. Это означает, что у вас есть несколько ссылок на одинA.java
и тот же файл и вы не можете его правильно построить.Другими способами это может произойти, если вы случайно или сознательно редактируете / добавляете что-либо в файл пути к классам вручную. В некоторых случаях мы можем добавить путь android.jar вручную к файлу classpath для создания документа java. При удалении того, что после сгенерированного javadoc Код будет работать нормально. Пожалуйста, проверьте это тоже, если что-то еще происходит.
источник
Я решил проблему.
Это конфликт файлов JAR.
Кажется, что у меня есть два JAR-файла на моем пути сборки, которые включают в себя один и тот же пакет и классы.
smack.jar
а такжеandroid_maps_lib-1.0.2
Удаление этого пакета из одного из файлов JAR решило проблему.
источник
ScoreloopUI
jar-файлы в каких-либо библиотечных проектах, которые вы добавили в свой проект, например, как я добавил проект в свою игру AndEngine, эти jar-файлы также мешают вашим, даже если они не находятся на пути сборки вашего собственного проекта.Решение для Windows 7:
Подтверждено, что проблема вызвана командной строкой ProGuard в файле
[Каталог установки Android SDK] \ tools \ proguard \ bin \ proguard.bat
Отредактируйте следующую строку, чтобы решить проблему:
в
источник
Вы можете легко решить эту проблему (с помощью Eclipse Android Developer Tools, Build: v22.0.1-685705), отключив меню> «Проект»> «Автоматически создавать» при экспорте (не) подписанного приложения Android. После этого не забудьте включить его снова.
источник
Если у вас ADT версии 12+, вы должны обновить Proguard с 4.4 -> 4.6 (как описано здесь ). Кроме того, вы должны оставить файл ... \ bin \ proguard.bat в оригинальной форме.
Просто скачайте его из Интернета и скопируйте папку lib из загруженного пакета в:
[Каталог установки Android SDK] \ tools \ proguard \ lib
источник
<sdk>/tools/proguard
каталог и переместил полный архивproguard4.11
на старый путь. Вуаля! Теперь, если бы я только мог вернуть свой предыдущий час ... -_-РЕДАКТИРОВАТЬ (новое решение):
Похоже, что предыдущее решение - только обход. Мне удалось окончательно решить проблему навсегда: в моем случае было несоответствие в файлах android-support-v4 в моем проекте и в проекте Facebook, на который есть ссылка в моем проекте.
Я обнаружил эту ошибку, выполнив проверку Lint (Инструменты Android / Run Lint: Проверка на наличие общих ошибок)
Мое предыдущее решение:
Я пробовал любое возможное решение на этом сайте - ничего не помогло !!!
Наконец, я нашел ответ здесь: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4
Простые шаги:
источник
Вот еще один сценарий и решение:
Если вы столкнулись с этой проблемой недавно после обновления ADT для Eclipse:
Кажется, причина в том, что некоторые предыдущие версии ADT связывали исходные папки проектов библиотеки с «дочерними» проектами, и текущая комбинация ADT / Dex больше не совместима с этим решением.
РЕДАКТИРОВАТЬ: это подтверждается записью в блоге разработчиков Android, в частности, этой - см. Восьмой абзац.
источник
Перейдите в Project, а затем снимите флажок «Автоматически строить». Затем попытайтесь экспортировать проект, и ошибка исчезнет.
источник
Это также может быть вызвано тем, что вы добавили
Android.jar
файл в путь сборки, возможно, из-за случайного быстрого исправления в Eclipse. Удалите его, щелкнув правой кнопкой мыши Project -> путь сборки -> настроить путь сборки -> android.jar , удалить.источник
Просто очистка проекта работала для меня каждый раз, когда появлялась эта ошибка.
источник
Мое собственное и единственное решение, которое я нашел сегодня после четырех часов тестирования всех решений, представляет собой сочетание многих решений, представленных здесь:
Delete
проект от Eclipse\bin
и\gen
из папки проекта.classpath
файл в корневой папке проектаeclipse -clean
Import
проектProperties
>Java Build Path
>Libraries
и удалить все остальное , чемAndroid XX.Y
clean
проект, ждать автоматического здания илиBuild
емуЯ пробовал каждый шаг за раз и много комбинаций, но только последовательность всех шагов сделала это одновременно! Я надеюсь, что я не буду сталкиваться с этим снова ...
источник
bin
папки сделало это для меня.Просто для других людей, у которых все еще есть эта проблема, и они попробовали вышеуказанные ответы, но все еще получали ошибку (что было моим случаем), тогда я решил удалить проект из Eclipse и повторно импортировать его снова.
Это сделало библиотеку Android снова добавленной к моим ссылочным библиотекам, так что теперь у меня есть две ссылки на JAR-файлы Android, поэтому я удалил один из них, и теперь он прекрасно компилируется.
Решение. Удалите проект из Eclipse IDE, а затем повторно импортируйте его, а затем проверьте наличие вышеуказанных решений.
источник
Я столкнулся с этой проблемой сегодня. Очистка и восстановление не решили проблему. Удаление и повторный импорт проекта также не помогли.
Я наконец отследил это до плохих дополнений к моему файлу .class. Я думаю, что это было добавлено инструментами плагина, когда я пытался исправить другую проблему, удалив ее, избавившись от ошибки сборки «Преобразование в формат Dalvik не удалось с ошибкой 1»:
источник
Для меня дополнительная ссылка JAR появилась в моем пути сборки. Я удалил это, и теперь это работает.
источник
Моя проблема была вызвана ADT версии 12.0 и интеграцией ProGuard. Эта ошибка хорошо документирована, и решение находится в документации
Решение здесь
Командная строка ProGuard
источник
Я имел дело с этой проблемой при использовании библиотеки Sherlock ActionBar в моем проекте. Вы могли бы сделать следующий шаг, это работа для меня.
Надеюсь, что это поможет вам.
источник
В моем случае проблема на самом деле с проектом OpenFeint API. Я добавил OpenFeint как проект библиотеки:
,
Это также добавляется в путь сборки, ADT tools 16 выдает ошибку в этом сценарии.
Щелкните правой кнопкой мыши по вашему проекту и выберите путь сборки, настройте путь сборки, а затем посмотрите изображение и удалите ваш проект OpenFeint отсюда, и все готово :)
источник
Я нашел что-то еще. Android использует
/libs
каталог для файлов JAR. Я неоднократно видел ошибку «Преобразование в формат Dalvik с ошибкой 1», всегда, когда я допускал ошибку в моих файлах JAR.Теперь я обновил Roboguice до более новой версии, поместив новый файл JAR в
/libs
каталог и переключив путь к классу на новую версию. Это вызвало ошибку Dalvik.Когда я удалил один из файлов JAR Roboguice из
/libs
папки, ошибка исчезла. Очевидно, Android получает все файлы JAR/libs
, независимо от того, какие файлы вы указали в пути сборки Java. Я точно не помню, но я думаю, что Android начал использовать/libs
по умолчанию, начиная с Android 4.0 (Ice Cream Sandwich, ICS).источник
Обновление Proguard до последней версии решило это для меня.
C:\Program Files (x86)\Android\android-sdk\tools\proguard\
СЛАВА БОГУ!
источник
В общем, кажется, что эта проблема возникает, когда в пути сборки есть ненужные файлы JAR.
Я столкнулся с этой проблемой, работая над IntelliJ IDEA . Для меня это произошло потому, что я добавил библиотеки JUnit и Mockito, которые компилировались во время выполнения. Это должно быть установлено на «тестирование» в свойствах модуля.
источник
Ни одно из ранее предложенных решений не сработало для меня. В моем случае проблема возникла, когда я переключился с ссылки на папку с исходным кодом библиотеки на файл библиотеки JAR. Изначально в разделе «Свойства приложения Android» в разделе «Свойства приложения Android» находился проект библиотеки Android, и библиотека также сравнивалась в дереве проводника проекта как ссылка на исходный каталог библиотеки.
Во-первых, я просто удалил ссылку на каталог из дерева проекта и добавил библиотеку JAR в путь сборки, но это вызвало исключение.
Правильная процедура была (после изменения пути сборки и возврата ссылки на источник библиотеки):
правильно удалите ссылку на исходный каталог библиотеки, фактически удалив ссылку из проекта приложения Свойства \ страница Android
добавив JAR библиотеки в путь сборки проекта приложения, как обычно.
источник
Ни одно из перечисленных решений не помогло мне.
Вот где у меня возникла проблема:
Я добавил внешний JAR-файл jSoup в путь моего проекта, сначала поместив его в исходную папку с именем "libs", а затем щелкнув правой кнопкой мыши по нему, Build Path -> add to build path. Это бросило ошибку преобразования Dalvik. Он сказал, что я «уже включил» класс из этого файла JAR. Я осмотрел каталог проекта и обнаружил, что место, где он «уже включен», на самом деле является
bin
каталогом. Я удалил JAR-файл изbin
каталога и обновил проект в Eclipse, и ошибка исчезла!источник
Все решения выше не сработали для меня. Я не использую какой-либо предварительно скомпилированный .jar. Я использую ошибки LVL и Dalvik, где все они связаны с библиотекой лицензирования рынка.
Проблема была решена путем удаления основного проекта и его повторного импорта (создание нового проекта из существующих источников).
источник
У меня была такая же проблема, и ни одно из этих решений не сработало. Наконец, я увидел в консоли, что ошибка произошла из-за дублированного класса (один в существующем проекте, один в добавленном jar-файле):
Поэтому проверьте, добавляете ли вы jar с дублирующимися классами в ваш проект. Если да, попробуйте удалить один из них.
Это сработало для меня.
источник
Часто для меня очистка проекта НЕ решает эту проблему.
Но закрытие проекта в Eclipse, а затем повторное открытие, похоже, исправляет его в этих случаях ...
источник
Я столкнулся с этой проблемой, но мое решение было двояким. 1.) Мне пришлось добавить целевую версию Android в разделе проекта -> свойства -> Android . 2.) У меня не было всех надстроек Google сторонних разработчиков. Нажмите в диспетчере AVD SDK под доступные пакеты -> сторонние дополнения -> Google Inc . Я загрузил все SDK, и это решило мою проблему.
источник
Я использую Android 1.6 и имел один внешний файл JAR. Что мне помогло, так это удалить все библиотеки, щелкнуть правой кнопкой мыши по проекту и выбрать « Инструменты Android» -> «* Исправить свойства проекта» (который вернул Android 1.6), а затем добавить внешний JAR-файл.
источник
Я столкнулся с этой проблемой, потому что плагин Android-Maven в Eclipse явно не распознавал переходные ссылки и ссылки, на которые дважды ссылались несколько проектов (включая проект библиотеки Android), и включал их несколько раз. Мне пришлось использовать фокус-покус, чтобы включить все только один раз, хотя Maven должен был позаботиться обо всем этом.
Например, у меня была базовая библиотека globalmentor-core, которую также использовали globalmentor-google и globalmentor-android (последняя из которых - библиотека Android). В globalmentor-android
pom.xml
мне пришлось пометить зависимость как «предоставленную», а также исключенную из других библиотек, в которые она была транзитивно включена:Затем в последнем приложении
pom.xml
мне пришлось использовать правильный трюк, чтобы разрешить только один путь включения, а также не включать явно библиотеку ядра:источник
<extractDuplicates>true</extractDuplicates>
в android-maven-plugin исправлена проблема,mvn install
но неmvn deploy
там, где я получил описанную ошибку ... действительно странноВ моем случае
проект-> свойства-> путь сборки Java -> вкладка «Порядок и экспорт» -> снимите флажок android-support-v4.jar
источник
Просто очистите проект
Если это не работает, попробуйте другие решения
источник