笔者在做android项目的时候,最后都有个需求:要能实现自动化的批量打包。一般都是采用ant来做。ant是一个很强大的工具,个人感觉要想使用好ant,是需要全面系统的学习一下的,看看android SDK中的ant脚本你就会非常确信这一点。
不过,笔者目前还有意识到现在花大力气学习ant有什么能看的见的好处,而且目前有更紧急更重要的要学习,所以一直采用,不知所以然,遇到问题解决问题的策略,现在把遇到的问题都记录下来,方便自己以后查阅。
(1)引入ant-contrib-1.0b3.jar遇到的问题
我们都知道contrib包提供了循环等功能。可是在使用的时候,一直报下面的错:
Problem: failed to create task or type for
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
这个错就是提示不能用for功能,靠,为什么呢?我在一开始就引入了contrib包呀!!!!
<taskdef resource="net/sf/antcontrib/antcontrib.properties" >
<classpath>
<pathelement location="lib/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
解决了好久,最终发现是版本的问题。靠,搞java就是这样,版本问题能搞死你。
把引入包语句换成下面的就行了
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
具体看下面的帖子
http://www.coderanch.com/t/109213/tools/Adding-ANT-Contrib-tasks
(2)property不能改值的问题
刚开始不知道property一旦赋值就不能改值了,那个郁闷纠结,这就是没有系统学习的结果。最后还是才有var标签解决的,具体看下面的文章:
http://qiang106.iteye.com/blog/2097833