Папка dexedLibs в проекте android

Итак, я довольно недавно заметил папку в моем проекте Phonegap/Android (project/bin/dexedLibs), и эта папка содержит два файла .jar. После расчесывания в Интернете я нашел один веб-сайт, на котором автор говорит, что версия ADT 21 ставит в проект "предварительно дексированные Libs", чтобы обеспечить более быстрое время сборки.

Недавно я обновил ADT 21, и мне просто интересно узнать, может ли кто-нибудь еще дать мне больше информации о том, что действительно делают эти "pre-dexed Libs"? Я не смог найти другую полезную информацию в сети.

Ответ 1

У меня есть проект Android с примерно 20 внешними библиотеками. До ADT 21 каждый раз, когда я менял исходный код, потребовалось немало времени для восстановления приложения. Теперь это довольно быстро!

Я думаю, причина в том, что перед ADT 21 он скомпилировал внешние библиотеки в код dex каждый раз, когда вы нажимаете кнопку "Запустить" в eclipse. Теперь он будет компилировать код dex для внешних библиотек только один раз (до их изменения) и использовать библиотеки предварительной сборки для более поздних "Run".

Мне нравится эта функция!

Ответ 2

Знайте! Я только что потратил час, чтобы узнать, почему я получаю исключение:

Caused by: java.lang.NoSuchMethodError: 

Причина заключалась в том, что я сменил мою библиотеку jb на новую банку (то же имя) на рабочий метод, и ADT 21 не подготовил новую в dexedLibs.

Итак, просто удалите bin dir, и Eclipse воссоздает это.

Ответ 3

Вопрос о 2-летнем возрасте все еще интересен.

Для пользователей, которые просматривают здесь позже: у меня просто были проблемы, потому что я переименовал проект Cordova с my.name.a3e в my.name.a3e, а затем процесс сборки разбился. Выяснили, что файлы dexed в ant -build не обновлены (чувствительность к регистру). Он отлично работал после того, как я удалил папку ant-build, но сборка заняла больше времени в первый раз после.

Файл dex является исполняемым файлом Dalvik, некоторым скомпилированным байтовым кодом, который может быть запущен виртуальной машиной Dalvik. Dalvik является основным компонентом Android, поэтому он существует.

http://sourceforge.net/projects/dexer/ http://developer.android.com/reference/dalvik/system/DexFile.html http://fileinfo.com/extension/dex

Обратите внимание, что проект Eclipse clean не удаляет dexed libs.