Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了。

在eclipse中引入ant请参考  http://www.cnblogs.com/tt_mc/p/3891546.html ,下面是本人ant打包时遇到的一些问题。

---------------------可爱的分割线------------------------------

一、按照上面步骤自己实现了下,在此过程中也遇到了很多问题。

1、配置环境变量android 和 ant,这里不详做解释。

2、如果你的项目有第三方资源包,则先切换到资源项目的路径将其转换为ant可以编译的。

  执行命令:android update lib-project -p ./

3、切换到主项目的根目录。

  执行命令 android list target ,可以获取android编译的版本。它的id值就是-t参数后面的值。

  D:\project3\MiniTools>android update project -n MiniTools -t 7 -p ./ --subprojects

  -n : 项目名称,-t 编译的版本, -p 项目路径,--subprojects 指存在第三方资源项目的引用。

4、签名文件

 

1、不签名
1.1、android update lib-project -p ./ //将第三方库文件编译成ant可以识别的 1.2、android update project -n test -t 7 -p ./ --subprojects --在主项目中执行 1.3、ant release --生产未签名的apk.
2、签名,完成1的步骤,接着配置下面
2.1、配置keystore
#keystore的路径,必须使用正斜杠
key.store= "E:/wp_android_sample/me.key"
keystore的密码
key.store.password=*****
#alias名
key.alias=me
#alias密码
key.alias.password=******
#渠道市场列表
market_channels=91,360,wandoujia,baidu
#版本号
version=1.2.1
2.2、添加渠道打包代码到build.xml
2.3、执行ant deploy就可以生成签名的各个渠道包
5、在CMD命令窗口输入 ant release 执行,在项目的bin目录下生产apk文件。
6、多渠道包就按照上面的方法去做就可以,在复制多渠道包脚本到build.xml时,放到condition节点下方(之前我放到了最后,打包时有错误,之后包脚本向签名的位置放了就可以了)。
 
二、遇到的错误及解决方法
  1、错误null returned 1
  

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

解决方法:

  1、在sdk/tools/ant/build.xml文件中找到aapt.ignore.assets,将它的值改为crunch。

  2、在自己项目的根目录下build.xml文件中加入:<property name="aapt.ignore.assets" value="!.svn:!.git:\x3Cdir\x3E_*:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~:crunch"
/>  这样子就只对自己的项目生效!为什么会有\x3Cdir\x3E这个东西,其实就是<dir>,不过ant build.xml中不允许使用'<'字符,所以要转义一下。

参考

http://my.oschina.net/bigtiger/blog/201924

http://bbs.csdn.net/topics/380199724

Android批量打包提速
- 1分钟900个市场不是梦

Ant自动化打多渠道包,Android批量打包提速的更多相关文章

  1. Android批量打包提速 - 1分钟900个市场不是梦

    版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/4152323.html 黎明前的黑暗 使用Ant或者Gradl ...

  2. Android 批量打包利器

    因为添加了渠道号,对应不同的渠道包,此时,动不动就几十个包,实在让人头疼,此时,需要引入自动打包功能. 首先,列举出援引的博客内容 美团Android自动化之旅—生成渠道包 http://tech.m ...

  3. Android批量打包-如何一秒内打完几百个apk渠道包

    在国内Android常用渠道可能多达几十个,如: 谷歌市场.腾讯应用宝.百度手机助手.91手机商城.360应用平台.豌豆荚.安卓市场.小米.魅族商店.oppo手机.联想乐商.中兴汇天地.华为.安智.应 ...

  4. 基于apktool项目的android批量打包工具,多平台支持

    好久木有写博客了,今天有点兴致就写一下,献上一个没怎么用的批量打包工具,python实现的,虽然说现在android的批量打包有一个很好的工具可以使用gradle,这个灰常牛叉的工具和android ...

  5. android批量打包

    http://blog.csdn.net/johnny901114/article/details/48714849

  6. Android几种常见的多渠道(批量)打包方式介绍

    多渠道打包,主要是为了统计不同的渠道上包的下载数量,渠道越多,我们需要打的包数量越多,这个时候,我们没法去使用单纯的手动打包去一个一个的生成不同的渠道包,我们需要更高效的打包方式. 声明渠道方式一: ...

  7. 在Android开发中使用Ant 三:批量打包

    批量打包最常用到的地方是进行产品推广时,为每个渠道打一个包.上一篇随笔中,介绍了怎样进行一次完整的打包,批量打包只要在此基础上做一次循环即可. 在打包之前要做两个准备工作,一个是读取渠道,一个是修改存 ...

  8. android ant 多渠道批量打包

    注:本文转载于:http://blog.csdn.net/zz7zz7zz/article/details/8915701 前言: 利用ant 可实现多渠道,批量打包. 正文: 思想:通过循环更改An ...

  9. Android中利用ant进行多渠道循环批量打包

    公司负责Android开发的小伙伴学习能力稍微偏弱,交代给他的自动化打包的任务,弄了好久依然没有成效.无奈只好亲自出手. 没有想到过程很顺利,我完全按照如下文章的步骤进行: 主要参考: Android ...

随机推荐

  1. mysql数据库详解

    001 数据库应用系统设计 1.规划   2.需求分析   3.概念模型设计   4.逻辑设计   5.物理设计   6.程序编制及调试   7.运行及维护. 002 创建数据库 CREATE DAT ...

  2. 【转】mouseover和mouseenter的区别

    一.当绑定着两个事件的元素里面没有子元素的时候,这两个事件的触发效果是一致的: x=0; y=0; $(document).ready(function(){ $("div.over&quo ...

  3. #!/bin/sh & #!/bin/bash区别

    在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本.目前研发送测的shell脚本中主要有以下两种方式:(1) #!/bin/sh(2) #!/bin/bash以上两种方式有什么区别? ...

  4. sass(@at-root与&配合使用、without和with)

    @at-root与&配合使用(找父级) scss.style css.style 应用于@keyframe scss.style css.style @at-root (without: .. ...

  5. Python基础-进程和线程

    一.进程和线程的概念 首先,引出“多任务”的概念:多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务.Linux.windows就是支持多任务的操作系统,比起单任务系统它的 ...

  6. 查看postgre都有哪些语句占用CPU

    查看占用CPU最多的几个postgresql ps aux | grep postgres | sort -n -r -k 3 | head -10 | awk '{print $2, $3}' 查看 ...

  7. sprintf详解

    原文:http://www.cnblogs.com/wqlblogger/archive/2007/01/09/615525.html 转摘声明:选自<CSDN 社区电子杂志——C/C++杂志& ...

  8. 初学Git和Github

    一开始看到老师的作业,出于好奇打开看了一下教程链接,一脸懵逼.What is this???然后慢慢了解,自己百度琢磨这个陌生的git,Git是一款免费.开源的分布式版本控制系统.Github是一个代 ...

  9. vs2013 c# 中调用 c 编写的dll出错的可能错误

    先说出错原因:    堆栈调用顺序  解决办法:     使用   __stdcall 或 使用C#属性 CallingConvention 起因是我想在c#中调用c函数结果出错了 如下 C 头文件 ...

  10. Linux下TC使用说明 & 使用备注 ZZ

    一.TC原理介绍 Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制. Linux流量控制的基本原理如 ...