Папка 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.