公司的eclipse打包android项目时经常出错,需反复clean、重启,都不一定能打包成功,全靠人品。故此介绍一种比较高端方便的打包方式:ant打包(基于android sdk)。

 

 

1、配置    

1.1 ant配置

ant的安装比较简单,下载ant压缩包  http://ant.apache.org,下载之后将其解压到某个目录(本人解压到E:\Program Files\apache-ant-1.9.3) ,然后配置环境变量(新建ANT_HOME环境变量,值为ant所在的目录,然后将ANT_HOME/bin添加到path中),如图:        

ant 打包android android ant 打包_android

打开命令行工具,输入 ant  -version ,如果出现如下结果,说明ant 安装成功。

 

1.2 android配置(如果未配置)

将sdk下的tools(而不是platform-tools)目录加到环境变量。

 

2、生成对应android项目的build.xml

打开命令行工具,切换路径到项目所在的目录;输入命令

android update project --name <project_name> --target <target_ID>--path <path_to_your_project>

例:android update project --name YDZF_client -p ./

项目根目录下多了build.xml,以及local.properties两个文件。

build.xml则是ant构建的最重要脚本,打开一看,发现里面其实大部分都是写注释,有用的没几行,这是因为生成的这个build.xml引用了android SDK自带的构建脚本,具体目录是{sdk目录}/tools/ant/build.xml 。

 

但由于我们做的项目多有依赖第三方项目,所以要先进入到library项目所在的目录,输入命令 android update lib-project -p ./  (注意是 lib-project)。

 

3、可能遇到的问题

 BUILD FAILED

 D:\Android\sdk\tools\ant\build.xml:601: The following error occurred while executing this line:

 D:\Android\sdk\tools\ant\build.xml:653: The following error occurred while executing this line:

 D:\Android\sdk\tools\ant\build.xml:698: null returned: 1

 

修改sdk 》tools》ant》build.xml文件中的<property name="aapt.ignore.assets" value="crunch" />,

方法可行,但仔细看一下build.xml中的解释,就可以看到"Default is "!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"",

如果直接修改了sdk里面的配置,个人觉得不太妥,那么可以在自己项目的根目录下build.xml文件中加入:

<property name="aapt.ignore.assets" value="!.svn:!.git:\x3Cdir\x3E_*:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~:crunch" />

ant 打包android android ant 打包_ant_02


这样子就只对自己的项目生效!

为什么会有\x3Cdir\x3E这个东西,其实就是<dir>,不过ant build.xml中不允许使用'<'字符,所以要转义一下。

 

4、打包签名项目

在项目根目录下添加:ant.properties 文件,例:

#keystore的路径,必须使用正斜杠  
key.store=d:/android/keystore/debug.keystore
#keystore的密码  
key.store.password=android
#alias名  
key.alias=androiddebugkey
#alias密码  
key.alias.password=android

 

如不指定密码的话,需要在打包过程中手动输入密码

 

5、打包命令

项目根目录下运行 ant release 命令就会帮你生成一个经过签名和aligned的apk,生成的apk(your_project_name-release.apk)在bin目录下。