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 搞定