项目需求对android app进行自动打包,因为项目用adt开发,所以采用ant来做自动打包。用ant打包主要有以下几个步骤:
1.对项目及其依赖子项目生成ant脚本
进入到项目根目录,执行(adt所在路径)\sdk\tools\android update project --name chenglifang -p ./ --subprojects. -name为项目名称,-p为项目所在路径。生成ant.properties, build.xml, custom_rules.xml, local.properties等文件。--subprojects是对子项目进行处理,如果没有依赖的子项目则无需加--subprojects参数。如果依赖子项目没有生成脚本文件,有可能是那个library 还不支持ant自动编译,需要在library项目下执行android update lib-project -p ./ 生成脚本文件,再在主项目下执行android update project 生成脚本文件。
执行脚本过程中出现了invalid directory错误,在build.xml中添加以下行解决问题。
<property name="aapt.ignore.assets" value="!.svn:!.git:\x3Cdir\x3E_*:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~:crunch" />
2.添加ant.properties配置变量
我的配置如下
project.name=chenglifang
apk.name=chenglifang
jar.libs.dir=libs
extlibs.dir=jar
build.first=false
java.dir=C\:\\Program Files\\Java\\jdk1.8.0_31
sdk.dir=E\:\\work\\android\\adt-bundle-windows-x86-20131030\\sdk
java.encoding=utf-8
out.absolute.dir=D\:\\android\\autocompile\\project\\output
key.store=D\:\\android\\autocompile\\keystore\\mykeystore.keystore
key.store.password= -->签名密码
key.alias= -->签名别名
key.alias.password= -->签名密码
3.执行ant脚本生成apk
执行之前要保证ant已安装,配置了环境变量。
命令行执行ant clean release, 会在out.absolute.dir下生成签名的apk。
在命令行执行ant debug生成debug的apk时出现错误,目前原因未知,暂未解决。
以上在windows命令行完成了ant自动打包apk功能,也可以在jenkins中配置ant构建做自动编译打包。