我正在开发一个使用Maven作为构建工具的Android项目,并且一直在玩Eclipse,Android ADT,m2eclipse,Maven Android插件,Maven Integration for Android开发工具和Subclipse的配置,现在,但不能让它工作可以接受。也就是说,构建时间不必要地很长,或者项目没有在模拟器上重建和部署。
目前,我已完成以下结果大致如下:
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秒,在此期间:
应用程序在约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 }
只有正在保存的文件才能编译并放入配置的输出文件夹中,立即快速。
我尝试禁用自动构建,启用所有构建器,然后运行 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清理项目后运行特定目标,但我不想在模拟器上每次安装之前清理项目。
我希望Eclipse只有在运行方式时才能通过 Maven Project Builder 运行 aapt 和 dx 进程 - > Android应用程序,而不是在保存文件时。然后应该在模拟器中启动应用程序。
答案 0 :(得分:1)
新版本的Maven Integration for Android开发工具更快,有希望解决您的一些问题,将在下周左右发布。
答案 1 :(得分:0)
迁移到Gradle和具有Gradle支持的IDE,例如IntelliJ或Android Studio。