在Run As上调用Eclipse中的“Maven Project Builder” - > Android应用程序(或手动)

时间:2011-07-17 20:26:40

标签: android eclipse maven

使用Eclipse和Maven设置Android开发环境

我正在开发一个使用Maven作为构建工具的Android项目,并且一直在玩Eclipse,Android ADT,m2eclipse,Maven Android插件,Maven Integration for Android开发工具和Subclipse的配置,现在,但不能让它工作可以接受。也就是说,构建时间不必要地很长,或者项目没有在模拟器上重建和部署。

当前配置状态

目前,我已完成以下结果大致如下:

  • 从Ubuntu 11.04的默认存储库安装Eclipse Galileo(3.5.2)。
  • 安装了上面提到的Eclipse插件和Android SDK。
  • 通过导出项目从SCM中查看Maven项目
  • 禁用项目的所有构建器,但 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。
  • 一个CPU内核忙,系统运行缓慢。

On Run As - > 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 }

我想要发生什么

在文件保存

只有正在保存的文件才能编译并放入配置的输出文件夹中,立即快速。

On Run As - > Android应用程序

  • 调用Maven Project Builder ,执行冗长的 aapt dx 进程,该进程当前在每个文件保存时执行。
  • 在模拟器上安装并启动应用程序。

问题

  • 如何实现上述目标?
  • 是否可以在运行方式之前运行Maven Project Builder - > Android应用程序,但不是每个文件保存?怎么样?

其他方法

我尝试禁用自动构建,启用所有构建器,然后运行 Project - >在有问题的项目上构建项目,但没有任何反应,当我 Run As - > Android应用程序代码更改不存在。

我尝试禁用 Maven项目构建器并启用所有其他构建器,启用自动构建,但保存文件后,我在控制台(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!

并在 Run As - > 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 compilation is slow (using Eclipse).

解释为什么 dx 进程如此冗长,并建议使用命令行中的Ant手动构建并仅在必要时进行构建。我实际尝试过这个,但是无法使用Maven依赖项,即使使用Maven插件将所有依赖项JAR复制到libs/也是如此。

For a maven project in eclipse can I configure menu option Project/Clean to invoke mvn clean?

说明如何在通过Eclipse清理项目后运行特定目标,但我不想在模拟器上每次安装之前清理项目。

TL; DR

我希望Eclipse只有在运行方式时才能通过 Maven Project Builder 运行 aapt dx 进程 - > Android应用程序,而不是在保存文件时。然后应该在模拟器中启动应用程序。

2 个答案:

答案 0 :(得分:1)

新版本的Maven Integration for Android开发工具更快,有希望解决您的一些问题,将在下周左右发布。

答案 1 :(得分:0)

迁移到Gradle和具有Gradle支持的IDE,例如IntelliJ或Android Studio。