ant 打包android项目,引用第三方library,多版本,多渠道

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=&quot;(.*)&quot;" />

            <substitution expression="package=&quot;${app.packname}&quot;" />

            <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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值