Подтвердить что ты не робот

Несколько файлов dex - Превращение в формат Dalvik не удалось - Не удалось выполнить dex

У меня есть 2 версии приложения - pro и lite. Они оба уже на рынке в v1.01. Я пытаюсь выпустить v1.1 для обоих. Это обновление включает интеграцию SwawrmConnect для использования своих глобальных лидеров.

Я должен начать, сказав, что знаю, что я не поддерживаю свой код правильно. У меня есть 2 совершенно разных приложения, которые, вероятно, содержат 90% кода. Я поддерживаю их отдельно, потому что через неделю или 2 или 3 из-за неспособности выяснить, как сделать библиотеку и поделиться кодом, я сдался и просто пошел с этим.

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

Сейчас моя облегченная версия работает и готова к выпуску. Теперь я пытаюсь получить мою версию pro там, где она должна быть выпущена. Я уверен, что все файлы java/xml обновлены и готовы. Когда я пошел запускать версию pro в эмуляторе, я получаю следующую ошибку:

[2013-04-18 11:24:41 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler;
[2013-04-18 11:24:41 - BibleTriviaPro] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler;

Вещи, которые я пробовал:

  • Clean/восстановление
  • Обновить Eclipse
  • Удалить папки bin и gen
  • Перезапуск Eclipse
  • Плюс некоторые другие вещи

Моя файловая структура:

enter image description here

Может быть проблема в том, что я пытаюсь использовать SwarmConnect в качестве библиотеки для двух проектов (lite и pro)?

EDIT:

Ниже приведена файловая структура для облегченной версии, которая работает отлично. Компилирует и запускает эмулятор.

enter image description here

4b9b3361

Ответ 1

По совпадению я столкнулся с тем же вопросом позавчера. Вот что я предлагаю вам сделать.

Прежде всего убедитесь, что у вас есть резервная копия всех банок, находящихся в настоящее время в папке "Зависимости от Android" / "libs".

Теперь, сначала исправьте версию lite, выполнив следующие шаги.

  • Удалите все jar файлы, кроме android-support-v4.jar из папки "Android Dependencies" в Project Explorer в Eclipse.

  • Аналогично удалите все файлы Jar, кроме android-support-v4.jar, из папки libs в Project Explorer в Eclipse.

  • Теперь щелкните правой кнопкой мыши на своем проекте- > Выберите "Свойства" → "Выбрать путь сборки Java" → "Добавить добавление внешних JAR". Добавьте все необходимые файлы jar (просто убедитесь, что вы добавили конкретный файл jar только один раз).

Наконец, очистите проект и постройте его. Теперь примените ту же последовательность шагов к pro-версии. Это должно сделать это.

UPDATE: - Если вы видите, как Eclipse делает компиляцию о некоторых ошибках времени компиляции, после выполнения всего этого вам может потребоваться просто исправить эти ошибки времени компиляции, выполнив необходимые импорт, нажав Ctrl + Shift + O.

[Я предполагаю, что нет никакой связи между pro и lite версиями проекта с точки зрения исходных зависимостей и т.д., что я имею в виду, в основном они абсолютно независимы.]

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

Ответ 2

Я сильно подозреваю, что это ваша проблема.

  • Щелкните правой кнопкой мыши свой проект
  • Посмотрите под опцией "Android".
  • В нижней панели посмотрите, присутствует ли "Swarm Connect"
  • Если нет, добавьте его (хотя я действительно подозреваю, что он уже есть)
  • Удалить Swarm.jar из каталога libs

причина: когда вы добавляете проект библиотеки в проект Android в Eclipse, он не отображается в вашем каталоге libs. Я на самом деле пытался добавить только файл .jar в проект, и мне сказали, что это неправильный подход (по крайней мере, до API 14, я думаю).

Моя догадка заключается в том, что в вашей версии "non-pro" вы не связывали ее в параметрах проекта и, следовательно, все еще правильно компилировались. Тем не менее, вы должны связать его так, как я описал, чтобы избежать проблем, когда библиотека пытается получить доступ к своим собственным ресурсам.

Ответ 3

Вышеупомянутое решение не работало для меня. Все, что мне нужно было сделать, это добавить банки в папку libs извне и отключить частные библиотеки Android под вкладкой "Заказ и экспорт".

 right click--
             java build path--
                               order and export tab ->Uncheck Android private libraries 
                                   and add jars in the libs folder externally.

выполните указанные выше действия. Не знаю, почему это происходит.

Ответ 4

Я попробовал ответить @Sriram выше. Это не сработало.

Затем мне пришлось удалить библиотеки из Project- > Properties- > Java Build Path- > Libraries и добавить фактический jar (мне нужны были android-support-v4.jar и android-support-v13.jar) в папку libs моего проекта. Затем он работал:

final structure

(обратите внимание, что нет папки "Связанные библиотеки" )

Ответ 5

Я получил эту ошибку, потому что использовал весь инсталлятор Android Development Kit (Eclipse plus SDK, датированный 2/6/2013). Единственный способ избавиться от него - удалить все это и отдельно установить Eclipse для разработчиков Java с eclipse.org и Android SDK только с сайта Android. В Eclipse, который поставляется вместе с комплектом, есть некоторые смешные идеи о том, куда включать библиотеки, не говоря уже о рудиментарных кусках поддержки С++ и gdb.