При установленном плагине ADT для проекта Android активны следующие сборщики:
- Диспетчер ресурсов Android
- Прекомпилятор Android
- Java Builder
- Android Package Builder
При просмотре выходного каталога создаются следующие артефакты:
- resources.ap_ (просто APK / ZIP с ресурсамии без кода)
- gen / R.java (автоматически сгенерированный список ресурсов)
- .class файлы с байт-кодом java
- classes.dex
- $ {имя-проекта} .apk
Для моего проекта я автоматически генерирую несколько артефактов кода и, как правило, нуждаюсь в более строгом контроле процесса сборки.Сначала я решил, что Resource Manager отвечает за создание resources.ap_, прекомпилятор создал R.java, java builder сделал очевидное, а затем Android Package Builder создал classes.dex, затем объединил classes.dex и resources.ap_чтобы создать файл APK.
Я отключил первые два шага и создал пользовательский предварительный компоновщик, который установил копию resources.ap_, полагая, что это будет эквивалентно.Не повезло.
К сожалению, финальный Android Package Builder, похоже, отбирает ресурсы непосредственно из res / и игнорирует мои resources.ap_.Фактически, первые два шага сборки, похоже, не делают ничего, кроме генерации R.java.
Вот где это действительно проблематично.Если я отключу последний шаг сборки и уложу свой собственный файл APK (с точным тем же именем), я получу следующую ошибку:
[2011-02-27 20:25:28 - android-premium] ------------------------------
[2011-02-27 20:25:28 - android-premium] Android Launch!
[2011-02-27 20:25:28 - android-premium] adb is running normally.
[2011-02-27 20:25:28 - android-premium] Could not find android-premium.apk!
Так что я застрял: сAndroid Package Builder (который не имеет заметной конфигурации), я должен предоставить отдельные файлы ./res/.Без этого я не могу заставить проект запускаться на устройстве (не из Eclipse).
У кого-нибудь есть лучшие идеи / опыт в этом пространстве?