http://developer.android.com/tools/projects/projects-cmdline.html
1.首先是为项目生成build.xml文件
执行命令 android update project --name projectName -t 3 -pprojectPath
效果如下图
http://developer.android.com/tools/projects/projects-cmdline.html
localhost:android_wardrobe wuyexiong$ android update project --name wardrobe --target 23 --path /Users/wuyexiong/company/android_wardrobe/wardrobe Updated project.properties Updated local.properties Updated file /Users/wuyexiong/company/android_wardrobe/wardrobe/build.xml It seems that there are sub-projects. If you want to update them please use the --subprojects parameter.
localhost:android_wardrobe wuyexiong$ android update project --target 23 --path /Users/wuyexiong/company/android_wardrobe/wardrobe/ --library /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/ Resolved location of library project to: /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh Updated project.properties Updated local.properties It seems that there are sub-projects. If you want to update them please use the --subprojects parameter.
在项目目录下运行ant,得出如下提示
help: [echo] Android Ant Build. Available targets: [echo] help: Displays this help. [echo] clean: Removes output files created by other targets. [echo] The 'all' target can be used to clean dependencies [echo] (tested projects and libraries)at the same time [echo] using: 'ant all clean' [echo] debug: Builds the application and signs it with a debug key. [echo] The 'nodeps' target can be used to only build the [echo] current project and ignore the libraries using: [echo] 'ant nodeps debug' [echo] release: Builds the application. The generated apk file must be [echo] signed before it is published. [echo] The 'nodeps' target can be used to only build the [echo] current project and ignore the libraries using: [echo] 'ant nodeps release' [echo] instrument:Builds an instrumented package and signs it with a [echo] debug key. [echo] test: Runs the tests. Project must be a test project and [echo] must have been built. Typical usage would be: [echo] ant [emma] debug install test [echo] emma: Transiently enables code coverage for subsequent [echo] targets. [echo] install: Installs the newly build package. Must either be used [echo] in conjunction with a build target (debug/release/ [echo] instrument) or with the proper suffix indicating [echo] which package to install (see below). [echo] If the application was previously installed, the [echo] application is reinstalled if the signature matches. [echo] installd: Installs (only) the debug package. [echo] installr: Installs (only) the release package. [echo] installi: Installs (only) the instrumented package. [echo] installt: Installs (only) the test and tested packages (unless [echo] nodeps is used as well. [echo] uninstall: Uninstalls the application from a running emulator or [echo] device. Also uninstall tested package if applicable [echo] unless 'nodeps' is used as well.
localhost:wardrobe wuyexiong$ ant uninstall Buildfile: /Users/wuyexiong/company/android_wardrobe/wardrobe/build.xml -check-env: [checkenv] Android SDK Tools Revision 21 [checkenv] Installed at /Users/wuyexiong/Documents/Dev/Android/android-sdk-macosx -setup: [echo] Project Name: wardrobe [gettype] Project Type: Application uninstall: [echo] Uninstalling com.haobao.wardrobe from the default emulator or device... [exec] Success BUILD SUCCESSFUL Total time: 2 seconds localhost:wardrobe wuyexiong$ ant debug install Buildfile: /Users/wuyexiong/company/android_wardrobe/wardrobe/build.xml -set-mode-check: -set-debug-files: -check-env: [checkenv] Android SDK Tools Revision 21 [checkenv] Installed at /Users/wuyexiong/Documents/Dev/Android/android-sdk-macosx -setup: [echo] Project Name: wardrobe [gettype] Project Type: Application -set-debug-mode: -debug-obfuscation-check: -build-setup: [echo] Resolving Build Target for wardrobe... [gettarget] Project Target: Android 4.1.2 [gettarget] API level: 16 [echo] ---------- [echo] Creating output directories if needed... [echo] ---------- [echo] Resolving Dependencies for wardrobe... [dependency] Library dependencies: [dependency] [dependency] ------------------ [dependency] Ordered libraries: [echo] ---------- [echo] Building Libraries with 'debug'... nodeps: -set-mode-check: -set-debug-files: -check-env: [checkenv] Android SDK Tools Revision 21 [checkenv] Installed at /Users/wuyexiong/Documents/Dev/Android/android-sdk-macosx -setup: [echo] Project Name: wardrobe_pulltorefresh [gettype] Project Type: Android Library -set-debug-mode: -debug-obfuscation-check: -build-setup: [echo] Resolving Build Target for wardrobe_pulltorefresh... [gettarget] Project Target: Android 4.1.2 [gettarget] API level: 16 [echo] ---------- [echo] Creating output directories if needed... [echo] ---------- [echo] Resolving Dependencies for wardrobe_pulltorefresh... [dependency] Library dependencies: [dependency] No Libraries -pre-build: -code-gen: [mergemanifest] No changes in the AndroidManifest files. [echo] Handling aidl files... [aidl] No AIDL files to compile. [echo] ---------- [echo] Handling RenderScript files... [renderscript] No RenderScript files to compile. [echo] ---------- [echo] Handling Resources... [aapt] No changed resources. R.java and Manifest.java untouched. [echo] ---------- [echo] Handling BuildConfig class... [buildconfig] No need to generate new BuildConfig. -pre-compile: -compile: [echo] Creating library output jar file... -post-compile: -obfuscate: -dex: [echo] Library project: do not convert bytecode... -crunch: [crunch] Crunching PNG Files in source dir: /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/res [crunch] To destination dir: /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/bin/res [crunch] Crunched 0 PNG files to update cache -package-resources: [echo] Library project: do not package resources... -package: [echo] Library project: do not package apk... -post-package: -do-debug: [echo] Library project: do not create apk... [propertyfile] Updating property file: /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/bin/build.prop [propertyfile] Updating property file: /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/bin/build.prop [propertyfile] Updating property file: /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/bin/build.prop [propertyfile] Updating property file: /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/bin/build.prop -post-build: debug: -pre-build: -code-gen: [mergemanifest] No changes in the AndroidManifest files. [echo] Handling aidl files... [aidl] No AIDL files to compile. [echo] ---------- [echo] Handling RenderScript files... [renderscript] No RenderScript files to compile. [echo] ---------- [echo] Handling Resources... [aapt] No changed resources. R.java and Manifest.java untouched. [echo] ---------- [echo] Handling BuildConfig class... [buildconfig] No need to generate new BuildConfig. -pre-compile: -compile: -post-compile: -obfuscate: -dex: [dex] input: /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/classes [dex] input: /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/bin/classes.jar [dex] input: /Users/wuyexiong/company/android_wardrobe/wardrobe/libs/gson-2.2.2.jar [dex] input: /Users/wuyexiong/company/android_wardrobe/wardrobe/libs/umeng_sdk.jar [dex] input: /Users/wuyexiong/company/android_wardrobe/wardrobe/libs/android-support-v4.jar [dex] Using Pre-Dexed classes-a1f893dd4075b58ecd2f0da685f2ab7a.jar <- /Users/wuyexiong/company/android_wardrobe/wardrobe_pulltorefresh/bin/classes.jar [dex] Using Pre-Dexed gson-2.2.2-de6fbe71bf7663e94351648f04d14d3e.jar <- /Users/wuyexiong/company/android_wardrobe/wardrobe/libs/gson-2.2.2.jar [dex] Using Pre-Dexed umeng_sdk-bfaefaa81d40319afd9177a431101238.jar <- /Users/wuyexiong/company/android_wardrobe/wardrobe/libs/umeng_sdk.jar [dex] Using Pre-Dexed android-support-v4-48870b25fa653c73e5a248db2a3e5e6f.jar <- /Users/wuyexiong/company/android_wardrobe/wardrobe/libs/android-support-v4.jar [dex] No new compiled code. No need to convert bytecode to dalvik format. -crunch: [crunch] Crunching PNG Files in source dir: /Users/wuyexiong/company/android_wardrobe/wardrobe/res [crunch] To destination dir: /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/res [crunch] Crunched 0 PNG files to update cache -package-resources: [aapt] No changed resources or assets. wardrobe.ap_ remains untouched -package: [apkbuilder] No changes. No need to create apk. -post-package: -do-debug: [zipalign] Run cancelled: no changes to input file /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/wardrobe-debug-unaligned.apk [echo] Debug Package: /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/wardrobe-debug.apk [propertyfile] Updating property file: /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/build.prop [propertyfile] Updating property file: /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/build.prop [propertyfile] Updating property file: /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/build.prop [propertyfile] Updating property file: /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/build.prop -post-build: debug: install: [echo] Installing /Users/wuyexiong/company/android_wardrobe/wardrobe/bin/wardrobe-debug.apk onto default emulator or device... [exec] 4441 KB/s (869375 bytes in 0.191s) [exec] pkg: /data/local/tmp/wardrobe-debug.apk [exec] Success BUILD SUCCESSFUL
ubuntu12.10下编译会出错。
BUILD FAILED
/home/wuyexiong/company/android_wardrobe/wardrobe/build.xml:90: The following error occurred while executing this line:
/home/wuyexiong/Android/android-linux/adt-bundle-linux-x86_64/sdk/tools/ant/build.xml:206: No supported regular expression matcher found: java.lang.ClassNotFoundException: org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
Total time: 0 seconds
wuyexiong@wuyexiong-System-Product-Name:~/company/android_wardrobe/wardrobe$ sudo apt-get install ant-optional
安装一个最新的ant 搞定