FIrst of all, 安装ant及配置环境变量
接下来,开始流程。
0. 通过android list targets命令,查看Available Android targets,打包命令需要可用的target id。
1. 生成一些配置文件。如build.xml, local.properties, project.properties, proguard-project.txt等。
(1)如果项目只是引用了第三方jar包,那只要将jar包放到libs文件夹下就ok了,ant会在编译打包过程中自动将第三方jar包加进去。
(2)如果项目关联了其他项目作为library,那需要先关联该library项目:
操作:进入该library项目所在目录(比如我关联的library项目名为PullToRefreshLibrary),执行:
android update lib-project -p ./PullToRefreshLibrary --target 3
结果:在PullToRefreshLibrary目录下会生成一些配置文件。
(3)完成关联library项目的配置后,开始生成我们android项目的配置文件。进入android项目目录内,执行:
android update project -p ./ --subprojects -n HM --target 3
这样,就完成了生成项目的配置文件的工作。
2.生成签名
说明:keytool -genkey -alias alias_name(别名) -keyalg RSA(算法) -validity 365(有效期,天为单位) -keystore e:\test.keystore(指定位置)
例子:keytool -genkey -alias cbjust -keyalg RSA -validity 20000 -keystore cbjust.keystore
3. 在android项目的根目录下创建ant.properties文件,包含以下内容:
#keystore的路径,必须使用正斜杠
key.store=./cbjust.keystore
#keystore的密码
key.store.password=*****
#alias别名
key.alias=cbjust
#alias密码
key.alias.password=*****
4. 在android项目根目录下,执行命令打包:ant release
出现过的问题:
问题1. 提示sdk的build.xml文件601, 653, 698行有错误。
原因:android项目(包括关联的其他项目)的bin/res下有crunch文件夹,编译时处理不了,所以报错。
解决方法:直接删除bin/res下的crunch文件夹。
问题2. 报错:Keystore was tampered with, or password was incorrect: Password vertification failed
原因:ant.properties文件中,行末尾存在空格。
解决方法:每一行末尾都不能有空格,全部trim掉。
参考问题的网址:http://stackoverflow.com/questions/11625262/ant-fails-to-build-signed-apk-after-updating-to-android-v20/18487510#18487510