1.环境变量中配置android-sdk的platform-tools和tools
2.下载apache的ant包,并配置ANT_HOME,环境变量
3.控制台检测 ant -version 看输出的版本是否正确
4.下载 ant-contlib.jar文件(用于循环打包)
5.控制台进入主项目 目录 cd 路径
6.控制台输入 android update project -p .
7.进入第三方项目目录,重复第6步操作
8.在主项目目录中增加config文件夹,文件夹下创建 custom.properties,加入以下内容(注:若需要多个版本则需要创建多个xxx.properties,根据版本修改里面的内容)
key.store=签名文件绝对路径
key.alias=别名
key.store.password=密码
key.alias.password=密码
app.version=版本
app.name=名称
app.packname=包名
9.在主项目目录中增加custom_rules.xml文件,加入以下内容( 其中 <--数字 标示的下面内容需要你来填写其他的可以不修改)
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules" >
<!--1 项目绝对路径 -->
<property name="project_dir"value="项目绝对路径" />
<!--2 项目名字-->
<property name="project_name" value="项目名字"/>
<!--config配置文件路径 -->
<property name="config_dir" value="${project_dir}/config" />
<!--3 多版本,properties名称以,分隔开若只要打包一个则只填写一个文件的名字 -->
<property name="ants" value="custom,custom1,custom2" />
<!--4 引用ant-contlib这个扩展包,声明一下 -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties" >
<classpath>
<pathelement location="ant-contlib.jar文件绝对路径" />
</classpath>
</taskdef>
<!-- 创建apk存放目录 -->
<mkdir dir="apk" > </mkdir>
<!-- 循环打包的target 打包配置文件以,分隔开-->
<target name="build_all" >
<foreach
delimiter=","
list="${ants}"
param="ant_file_name"
target="modify_exec" >
</foreach>
</target>
<!--执行任务-->
<target name="modify_exec" >
<!--根据循环打包的参数引入配置文件-->
<property file="${config_dir}/${ant_file_name}.properties" />
<!--打印日志-->
<echo
level="info"
message="开始打包${app.name}.apk" />
<!--定义打包完成后的apk名字-->
<property
name="out.final.file"
location="bin/${project_name}.apk" />
<!--更新项目-->
<antcall target="update_project" />
<!--清理项目-->
<antcall target="clean" />
<!--打包,签名-->
<antcall target="release" />
<!--移动apk到指定文件夹指定名字的apk-->
<antcall target="move_apk" />
</target>
<!--移动apk到指定文件夹指定名字的apk-->
<target name="move_apk" >
<move
file="bin/${project_name}.apk"
tofile="apk/${app.name}.apk" />
</target>
<!--5 更新配置文件,这里可以修改AndroidManifest.xml文件中的版本号,名字,这些可以创建多个replaceregexp来匹配实现修改-->
<target name="update_project" >
<echo level="info" message="更新项目各个配置文件" />
<!-- 例如修改包名 -->
<replaceregexp
byline="false"
encoding="UTF-8"
flags="g" >
<regexp pattern="package="(.*)"" />
<substitution expression="package="${app.packname}"" />
<fileset
dir="${project_dir}"
includes="AndroidManifest.xml" />
</replaceregexp>
</target>
</project>
10.进入命令行,cd 进入项目的目录,执行 ant build_all,等待执行完毕,build success则可在项目主目录下的apk目录找到apk文件,若您需要按照某个变量为文件夹保存apk文件则可在custom.properties 类似其他的配置,并在修改custom.xml的 tofile="apk/${配置}/${app.name}.apk"
11.注意打包过程不要修改项目工程和第三方库,打包完后若发现项目工程有红色感叹号则需clean第三方库,若AndroidManifest.xml有误则检查custom.properties文件配置的资源是否存在,检查完成后需先把AndroidManifest.xml中有错误 的先修正在运行 ant build_all打包。
12 谢谢,解释完毕!
转载于:https://my.oschina.net/lgllfx/blog/625980