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

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

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

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

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

[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; 

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

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

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

Введите описание изображения здесь

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

РЕДАКТИРОВАТЬ:

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

Введите описание изображения здесь

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

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

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

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

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

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

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

ОБНОВЛЕНИЕ: – Если вы видите, как Eclipse раскалывает некоторые ошибки времени компиляции, после выполнения всего этого вам может потребоваться просто исправить эти ошибки времени компиляции, выполнив необходимые импорт, нажав Ctrl + Shift + O.

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

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

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

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

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

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

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

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

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

Я попытался ответить на вопрос Шрирама. Это не сработало.

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

Окончательная структура

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

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

Intereting Posts
Почему многострочные кнопки в gridlayout имеют странный верхний край? Как узнать, когда синхронизация завершена? Как правильно обновить сообщение уведомления api 11? Как получить правильную ориентацию изображения, выбранного из галереи изображений по умолчанию График Api не получает местоположение от Facebook SDK в Android Глубокая привязка и несколько примеров приложений Gradle build: Выполнение не выполнено для задачи ': app: lint' Android-сборщик Android не делает ничего Данные кампании не найдены. Использование Google Analytics v4 Как реализовать эффект масштабирования для представления изображения в Android? Панель инструментов – переход от кнопки выдвижения к задней панели только с одним действием Пользовательский цвет курсора в SearchView Android Gradient на Lollipop не работает. – API 21 Как вызвать setListAdapter в android Извлечение данных Google Maps Place (в частности, цены на газ)