ant打包应该大家都熟悉,在Eclipse中已经集成了,直接使用即可,但是在AndroidStudio(下文称AS)中是没有ant的,AS使用的是gradle,所以遇到难题了。下面我直接上菜:
首先,安装ant,如果你已经安装过Eclipse或是idea,则可直接去到安装目录下plugins文件夹下将整个ant插件文件夹复制到你AS的安装目录下的plugins下,如下图:
就这样,在AS中就可以使用ant插件了,在AS的工程目录中直接新建一个build.xml文件,然后把逻辑写好,再在AS的命令窗口下将路径切换到build.xml文件所在的路径,输入ant,即可运行脚本进行打包。
上面只是教大家如何在AS中配置Ant插件,比较简单,但是我要讲的重点不是这个,重点是:ant脚本编译工程源码过程中,如果第三方依赖是aar包,因为无法识别aar包导致编译失败,如何处理?因为ant中javac编译java文件只能识别jar包依赖形式,无法识别aar,所以导致编译失败,这种情况我们一般都是先去网上查找解决方案,可能网上你基本搜索不到解决方案,能搜到的都是jar的依赖方式,反正我是找了好久没找到。后面我放弃了,于是开始整理了一下自己的思路:
首先,从aar包的结构入手,aar包本身是一个压缩包,解压后你会发现里面有个classes.jar,以及res和AndroidManifest.xml等文件,也就是aar包包含了class以及res下所有资源文件,而jar包里面只包含class文件,既然aar解压之后有个classes.jar文件,那么是不是我们编译过程中,依赖指定到这个classes.jar就可以了?嗯没错!所以接下来我们就按这个思路开搞!但是问题来了,这些操作都需要手动操作?这就不现实了,体现不出自动化打包的功能,我们需要的是一键打包成功,解放双手,所以ant就做到了,既然这些操作的完成都基于ant脚本,所以就很有必要先去了解学习一下ant的使用和语法!(提个建议:ant的指令你可以根据你的操作步骤,针对性的去搜索对应的操作指令去学习,否则你可能很难找到一个比较全的语法大全,比如:ant遍历for循环、解压指令等等)
第一步:项目依赖的第三方jar或aar可能会很多,我们是不是只需要处理aar的依赖即可,所