Вызвать «Maven Project Builder» в Eclipse при запуске как -> Android-приложении (или вручную) - PullRequest
4 голосов
/ 18 июля 2011

Настройка среды разработки 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 , а не при сохранении файла.Затем приложение должно быть запущено в эмуляторе.

Ответы [ 2 ]

1 голос
/ 18 июля 2011

Новая версия инструментов разработки для Maven Integration для Android, которая работает быстрее и должна, надеюсь, решить некоторые ваши проблемы, выйдет на следующей неделе или около того.

0 голосов
/ 20 декабря 2013

Миграция в Gradle и IDE с поддержкой Gradle, например IntelliJ или Android Studio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...