Я давно пытался найти простое решение, насколько я могу судить, единственный способ заставить ADT экспортировать конечный apk с зависимыми классами библиотек - это явно добавить все ваши внешние lib.jar (генерируется из ваших других проектов) в путь сборки вашего проекта Android.
Текущая версия плагина Eclipse ADT имеет очень негибкий предопределенный жизненный цикл сборки (особенно на этапе дексинга), очевидно, он не поддерживает группирование проектов, кроме этих трех типов проекта Android вместе (классический, библиотечный и тестовый).).Другими словами, ADT не знает, как создать свой проект Android с обычным Java-зависимым проектом под путем сборки и автоматически добавить сгенерированный зависимым проектом lib.jar в путь сборки вашего основного проекта (даже если вы добавляете их в Orderи Экспорт списка), если вы явно не добавите в него внешний файл lib.jar.Предположим, что вы добавили C: \ workspace \ game \ target \ game.jar и C: \ workspace \ engine \ target \ engine.jar в путь сборки вашего проекта android-game, команда для создания вашего файла dex должна выглядеть примерно так:
java [-Xmx1024M, -jar, C:\android-sdk-r16\platform-tools\lib\dx.jar, --dex, --output=C:\workspace\android-game\target\classes.dex, C:\workspace\android-game\target\classes, C:\workspace\game\target\game.jar, C:\workspace\engine\target\engine.jar]
Если вы планируете использовать некоторые внешние инструменты сборки для управления жизненным циклом сборки проекта, я знаю, что Maven обеспечивает более гибкую настройку жизненного цикла сборки Android.Он поддерживает многомодульный проект (группирование проектов) и может правильно обрабатывать обычные зависимости проекта Java.
Мои знания основаны на Eclipse, с нетерпением жду возможности услышать некоторые шумы от источника Android или другого искушенного пользователя IDE.
Обновление от ADT 17.0.0:
Последний выпуск SDK r17 с ADT 17.0.0 утверждает, что теперь правильно обрабатывает эти случаи использования:
Eclipseконкретные изменения
Контейнер динамического пути к классам под названием «Библиотечные проекты» был переименован в «Зависимости Android», поскольку теперь он содержит не только библиотечные проекты.
Контейнер теперь также будет заполняться Java-только проекты, на которые ссылаются библиотечные проекты.Если эти Java-проекты также ссылаются на другие Java-проекты и / или jar-файлы, они будут добавлены автоматически (также поддерживаются jar-файлы, на которые ссылаются пользовательские библиотеки).
Важно: это происходит только в том случае, если ссылки установлены наэкспортируется в ссылочный проект.Обратите внимание, что это не значение по умолчанию при добавлении проекта или файла JAR в путь сборки проекта.Библиотечные проекты (и содержимое их файлов libs / *. Jar) всегда экспортируются.Это изменение касается только проектов, поддерживающих только Java, и их собственных файлов JAR.
Опять же, дубликаты (как проекты, так и файлы JAR) обнаруживаются и удаляются.
Проверьте изменения .