Ant打包APK

环境背景:

系统:ubuntu 14.10

Eclipse:4.4.1

ADT:23.4

Ant:1.9.4

1.首先当然还是先去安装ant。网上有很多教程,这里就不废话了,自己去下载。安装完毕还需要配置环境变量。

2.在终端(windows下cmd)打开到android sdk的tools目录,例如我的项目是在/home/arjinmc/Example,那么在终端中输入

android update project -p /home/arjinmc/Example -t "android-17"

//这里的t是target 相对于项目中的target sdk的版本号,我这里的是4.2.2,所以是要写android-17

此时就会生成出来两个文件,一个是build.xml,一个是local.properties

如果你的项目还引用到了别的项目library,那么也需要在这些项目生成一下ant必要的文件。

3.需要在自己的项目目录中新建一个文件叫ant.properties,在里面填写必要的内容,这个就是我们用来生成签名包,渠道等必要的配置

key.store=/home/eminem/my.keystore

key.alias=com.arjinmc.example

key.store.password=111111

key.alias.password=111111

然后保存。

4.在终端打开到自己的项目的绝对路径,然后执行ant release

此时有可能会出现类似这样的错误:

>      [aapt] invalid resource directory name: C:\Users\Paul\git\XXXXXXXX\bin\res/crunch
>
> BUILD FAILED
> C:\Android\android-sdk\tools\ant\build.xml:601: The following error occurred while executing this line:
> C:\Android\android-sdk\tools\ant\build.xml:653: The following error occurred while executing this line:
> C:\Android\android-sdk\tools\ant\build.xml:698: null returned: 1

这个是因为android sdk 的ant 和我们自己安装的ant两个ant都生成了用于aapt的crunch配置,导致ant会不知道到底用哪一个。如果遇到这中情况,打包的时候只要执行
ant clean release
就可以顺利打包了。但是打包完毕刷新,发现eclipse会出现项目引用的libirary项目报错的信息,不要慌。其实只要重新启动eclipse这些丢失的jar包就会重新回来。
我在网上搜了很多方法,但是都不管用。所以,使用ant打包完了,直接重启eclipse就可以了。

多渠道打包


在Manifest的<application>内添加
   <meta-data 
            android:name="UMENG_CHANNEL"
            android:value="${channel}"/>

在build.xml 加上

 <!-- 渠道包打包脚本  ant deploy-->    
<taskdef resource="net/sf/antcontrib/antcontrib.properties">  
    <classpath>  
        <pathelement location="/usr/share/ant/lib/ant-contrib-1.0b3.jar"/>  
    </classpath>  
</taskdef>  
  
<target name="deploy">  
   <foreach target="modify_manifest" list="${market_channels}" param="channel" delimiter=",">       
   </foreach>  
</target>  

<target name="modify_manifest">  
    <replaceregexp flags="g" byline="false">  
        <!-- 匹配的内容是 android:value="*****" android:name="UMENG_CHANNEL" -->  
        <regexp pattern=‘android:value="(.*)" android:name="UMENG_CHANNEL"‘ />  
        <!-- 匹配之后将其替换为 android:value="渠道名" android:name="UMENG_CHANNEL" -->  
        <substitution expression=‘android:value="${channel}" android:name="UMENG_CHANNEL"‘ /> 
        <!-- 正则表达式需要匹配的文件为AndroidManifest.xml -->  
         <fileset dir="" includes="AndroidManifest.xml" />  
    </replaceregexp>  
    <property name="out.release.file" location="${out.absolute.dir}/${ant.project.name}_${channel}.apk" />  
     <!--包 -->  
     <antcall target="release" />  
     <!--输出渠道包到bin/out目录下 -->  
    <copy tofile="${out.absolute.dir}/out/${ant.project.name}v${version}-${channel}.apk" file="bin/${ant.project.name}-release.apk"/>  
</target>

在ant.properties中添加一些渠道信息和版本号
market_channels=360,wandoujia,baidu
version=1.2.1


在终端输入ant deploy,有可能会出现缺少ant-contrib-1.0b3.jar,需要下载一个。各大网络有。下载完了放在ant的安装目录的下:linux下是lib目录,windows下是bin目录。
如果出现类似下面内容:
/home/arjinmc/software/android-sdk-linux/tools/ant/build.xml:1121: if doesn‘t support the "condition" attribute
需要修改ant-contrib-1.0b3.jar的的配置,依次打开net/sf/antcontrib/antcontrib.properties,找到if=net.sf.antcontrib.logic.IfTask,用#注释掉。然后保存。
时间: 2024-10-07 06:45:05

Ant打包APK的相关文章

使用SDK自带Ant打包生成Apk

由于想要实现一个从前端编辑然后后台自动生产APK的平台,首先需要搞定自动生成APK的功能.在研究了APK生成的7个步骤后发现稍微复杂一点的程序特别是res文件夹有子文件夹的就无法直接用sdk命令实现,于是选择使用Ant实现,开始是打算用原生Ant,也就是需要自己写build.xml,在尝试了多次之后发现里面有几个暂时无法解决的BUG:一是在编译时会报android.support.annotation找不到包,二是生成dex文件时会报already added错误,第一个错误可以通过修改程序勉强

使用Ant打包Android应用具体解释

计划写个完整的使用Ant打包Android应用的系列文章.三篇文章.首篇具体介绍採用Ant打包Android应用的流程.列出部分定制问题及其解决方法,第二篇介绍我理解的Ant打包的思路与主要的概念和使用,最后一篇描写叙述apk包的生成过程. 实现的环境: 操作系统:ubuntu 64bit 14.04 Android SDK Build Tools:22.0.1 Android SDK Tools:24.3.3 Ant:1.9.4 ProGuard:5.2.1 JDK:1.7 一.简单应用出包流

使用Ant打包Android应用详解

计划写个完整的使用Ant打包Android应用的系列文章,三篇文章.首篇详细介绍采用Ant打包Android应用的流程,列出部分定制问题及其解决方法,第二篇介绍我理解的Ant打包的思路与基本的概念和使用,最后一篇描述apk包的生成过程. 实现的环境: 操作系统:ubuntu 64bit 14.04 Android SDK Build Tools:22.0.1 Android SDK Tools:24.3.3 Ant:1.9.4 ProGuard:5.2.1 JDK:1.7 一.简单应用出包流程

在Hudson中,使用ant自动对安卓项目编译打包apk

本文对如何在hudson中配置ant编译打包apk进行说明,主要包括build.xml文件的编写.环境的配置.在Hudson中创建任务. 一.为安卓项目创建build.xml文件 1.打开cmd进入sdk目录下的tools目录,输入: android.bat list target  来查询我们现有的版本list有哪些.如下图: 途中用红框圈出的 id 与蓝框圈出的版本号对应关系,下面需要用到. 2.打开安卓项目工程下的 project.properties 文件,查看target 版本号,如下

ant使用总结(三):批量打包apk

准备 1.准备ant环境,和update工程,参考文章>>ant使用总结(一):使用ant自动打包apk 2.ant中实现迭代,需要添加ant-contrib-1.0b3.jar到classpath,参考文章>>ant使用总结(二):相关命令说明 工程说明 Demo工程地址:https://coding.net/u/linchaolong/p/AntTest/git 打开命令行,cd到工程根目录下,执行ant run命令就会开始自动批量打包,所有渠道包将会输出到AntTestOut

ant使用总结(一):使用ant自动打包apk

配置ant环境 (1)下载ant 下载地址一:http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zip 下载地址二:http://pan.baidu.com/s/1gdnc98n (2)解压ant,并把bin目录路径配置到系统path变量中 在命令行窗口中能执行ant命令表示配置成功 更新工程配置 (1)打开命令行窗口,执行如下命令: SDK根目录\tools\android update project --na

使用ANT打包Android应用

大家好,今天来分享一下如何使用ANT打包Android应用. 通常我们习惯用eclipse来开发Android程序,它会自动帮我们打包当前的应用程序.如果在Navigator视图下,我们可以看到以下几个文件: 在上图中,com包放置的是我们的class文件,classes.dex是class文件经过转换后的可以在dalvik上跑的精简类文件,resources.ap_是经过打包的资源文件,ant.apk就是最终的打包文件. 使用ANT来对应用打包,一般会经过以下几个步骤: 1.用aapt命令生成

实训二(cocos2dx 2.x 打包apk)

利用cocos2dx编程得到的展现形式之一就是最终的apk,中间的过程只有自己走过才能知道,对于没有章法的初学者,那是相当的头疼, 言归正传,2.x到3.x版本引擎变动很大,除去了CC只是很小一方面,就有很多人不适应,打包apk的方法上也有了很多不同. 本文主要会介绍在windows平台上,利用Cocos2dx 2.x版本引擎打包apk的过程. Cocos2d-x 2.x版本引擎 打包apk 1.环境+工具 VS2013.android-ndk-r9d.android-sdk-windows-r

Unity自动打包Apk

unity打包apk相对来说比较容易,相信出过的人都明白,出包过程,没有大的难度,一步一操作,一步一等待,繁琐耗时,不懂的人又代替不了.这时候需求就来了,如何简单的一键打包搞定,这个就稍微有点难度,当然作为程序员就是要解决这些问题,封装变化,变繁为简. 打包apk大概可以分为以下步骤(出apk需要的jdk,Android sdk这些不用多说,相信大家都会配置) 1.配置PlayerSetting 2.配置渠道等第三方SDK 3.copy外部资源和一些自己工程需要的一些配置 4.unity打包bu