Настройка среды разработки Android с использованием Eclipse и Maven
Я работаю над проектом Android с использованием инструмента сборки Maven и играю с настройкой Eclipse, Android ADT, m2eclipse, плагина Android Maven,Maven Integration для инструментов разработки Android и Subclipse уже некоторое время, но не может заставить его работать приемлемо.То есть, либо время сборки неоправданно велико, либо проект не перестраивается и не развертывается на эмуляторе в должном порядке.
Текущее состояние конфигурации
На данный момент я выполнил примерноследуя приведенному ниже результату:
- Установлен Eclipse Galileo (3.5.2) из стандартных репозиториев Ubuntu 11.04.
- Установлены плагины Eclipse, упомянутые выше, и Android SDK.
- Импортировал проект через Извлечь Maven Projects из SCM .
- Отключил все Builder для проекта, кроме Maven Project Builder .
- Удостоверился, что Автоматическая сборка отмечен.
При сохранении файла
Maven Project Builder вызывается и запускается:
aapt [package, -m, -J, .../application/target/generated-sources/r, -M, .../application/AndroidManifest.xml, -S, .../application/target/generated-sources/combined-resources/res, -A, .../application/assets, -I, .../android-7/android.jar]
dx [--dex, --output=.../application/target/classes.dex, .../application/target/android-classes]
aapt [package, -f, -M, .../application/AndroidManifest.xml, -S, .../application/target/generated-sources/combined-resources/res, -A, .../application/target/generated-sources/combined-assets/assets, -I, .../android-7/android.jar, -F, .../target/xxx-android-project-1.0-SNAPSHOT.ap_]
Время: ~ 15 секунд, в течение которых:
- Eclipse заблокирован для последующих пользовательских операций, таких как Save.
- Одно ядро процессора занято, а система работает медленно.
При запуске от имени -> Приложение Android
Приложение установлено и правильно запускается в течение ~ 10 секунд.
Вывод на консоль (Android):
Android Launch!
adb is running normally.
Performing com.xxx.android.activity.LoginActivity activity launch
Automatic Target Mode: Preferred AVD 'xxx_test_device' is available on emulator 'emulator-5554'
Uploading xxx-android-project.apk onto device 'emulator-5554'
Installing xxx-android-project.apk...
Success!
Starting activity com.xxx.android.activity.LoginActivity on device emulator-5554
ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xxx.android/.activity.LoginActivity }
Что бы я хотел, чтобы произошло
При сохранении файла
Должен быть только сохраненный файлскомпилировано и помещено в настроенную выходную папку, мгновенно быстро.
При запуске как -> Android-приложение
- Вызывается Maven Project Builder , который выполняет длительное aapt и dx процесс, который в настоящее время выполняется при каждом сохранении файла.
- Приложение установлено и запущено в эмуляторе.
Вопросы
- Как мне добиться того, что описано выше?
- Можно ли заставить Maven Project Builder запускаться непосредственно перед «Запускать от имени» -> «Приложение Android», но не при каждом сохранении файла?Как?
Другие подходы
Я попытался отключить Автоматически строить , включить всех Builder и затем запустить Проект -> Создайте проект на проект, о котором идет речь, но тогда ничего не происходит, и когда я делаю Запуск от имени -> Приложение Android , изменения кода отсутствуют.
Я пытался отключить Maven Project Builder и включить всех остальных сборщиков, включить Автоматически строить , но после сохранения файла я вижу это в консоли (Android):
Refreshing resource folders.
Starting incremental Pre Compiler: Checking resource changes.
Nothing to pre compile!
Starting incremental Package build: Checking resource changes.
Starting full Post Compiler.
Refreshing resource folders.
Starting incremental Pre Compiler: Checking resource changes.
Nothing to pre compile!
И на Запуск от имени -> Android-приложение приложение вылетает с этой ошибкой:
java.lang.RuntimeException: Unable to instantiate application com.xxx.android.XXXApplication: java.lang.ClassNotFoundException: com.xxx.android.XXXApplication in loader dalvik.system.PathClassLoader@44bfe130
Похожие вопросы
Компиляция Android медленная (с использованием Eclipse).
Объясняет, почему процесс dx такой длинный, и предлагает использовать Ant из командной строки для сборки вручную и только при необходимости,Я действительно попробовал это, но не смог заставить его работать с зависимостями Maven, даже когда копировал все JAR-файлы зависимостей в libs/
с помощью плагина Maven.
Для проекта maven в eclipse я могунастроить пункт меню Project / Clean для вызова mvn clean?
Объясняет, как выполнять конкретные задачи после очистки проекта через Eclipse, но я не хотел бы очищать проект перед каждой установкой в эмуляторе.
TL; DR
Я бы хотел, чтобы Eclipse запускал aapt и dx через Maven Project Builder только тогда, когда я Запускал как -> Приложение Android , а не при сохранении файла.Затем приложение должно быть запущено в эмуляторе.