ant android 多个的项目,[转] Ant 编译 Android 项目为 Apk 实战, 常见问题解决

补充,自行安装Ant, 配置ant环境变量, 在android 项目 根目录下使用

android update project

可以自动生成build.xml 和local.peoperties 文件

//------------------------------------------------------------------------------------------------------------------

1、背景

项目进行到一定程度了,每次发布前,产品要求打包测试,都需要手动从eclipse中导出签名APK,很是麻烦。于是想起了之前探索过的Ant自动签名打包。查看自己之前写的博客Windows系统下Ant自动编译打包并签名Android应用——探索篇,边动手边复习。但是后面遇到了一大串的问题...

2、问题解决过程

1)、libs库中的第三方包

如果项目只是引用了第三方jar包,只要将jar包放入项目libs目录下就可以了,ant编译的时候会自动把第三方jar包加入进去的,没有任何问题。

2)、项目引用了其他library项目

如果项目中引用了其他library项目,在使用android update project命令的时候,会提示你在命令后面添加--subproject参数来将其他引用项目一起update,一开始以为没什么问题,就没走这步,谁知道后面提示找不到library项目的build.xml文件。

BUILD FAILED /Android/SDK/sdk/tools/ant/build.xml:601: Invalid file: /依赖项目/build.xml

提示这个错误,不要着急,毕竟能大概知道原因,就是因为引用的第三方library项目没有build.xml文件吧。没关系,我们对所有第三方项目都执行一次 android update project命令,让它们根目录下都自动生成 build.xml 和 local.properties文件,问题迎刃而解。

3)、invalid resource directory name: F:\workspace\Zlib\bin\res/crunch 错误

-code-gen:

[mergemanifest] Found Deleted Target File

[mergemanifest] Merging AndroidManifest files into one.

[mergemanifest] Manifest merger disabled. Using project manifest only.

[echo] Handling aidl files...

[aidl] No AIDL files to compile.

[echo] ----------[echo] Handling RenderScript files...

[echo] ----------[echo] Handling Resources...

[aapt] Generating resource IDs...

[aapt] invalid resource directory name: F:\workspace\Zlib\bin\res/crunch

BUILD FAILED

D:\Android\sdk\tools\ant\build.xml:601: The following error occurred whileexecuting this line:

D:\Android\sdk\tools\ant\build.xml:653: The following error occurred whileexecuting this line:

D:\Android\sdk\tools\ant\build.xml:698: null returned: 1

遇到这个错误,编译失败,很棘手,完全不知道原因。通过查找资料,发现可能是因为Android  SDK版本太新了(我用的是22.6.2),会自动生成crunch目录,而ant在编译时总是不识别bin目录下编译好的资源。

找到两个解决方法:

①、关掉eclipse,因为eclipse自动生成res\bin\crunch目录;去到项目目录下删掉bin文件夹;命令行中执行ant release命令;

②、在ant\tools\build.xml或者项目的build.xml文件中添加

我的做法是先按照①的做法,再在项目的build.xml文件中添加②的属性,也不知道②的屏蔽方法会不会造成其他问题,反正命令行中提示如下

-compile:

[javac] Compiling93 source files to /Users/Rubert/myApp/platforms/android/CordovaLib/ant-build/classes

[javac] 警告: [options] 源值1.5已过时, 将在未来所有发行版中删除

[javac] 警告: [options] 目标值1.5已过时, 将在未来所有发行版中删除

[javac] 警告: [options] 要隐藏有关已过时选项的警告, 请使用-Xlint:-options。

[javac] 注: 某些输入文件使用或覆盖了已过时的 API。

[javac] 注: 有关详细信息, 请使用-Xlint:deprecation 重新编译。

[javac]3个警告

[echo] Creating library output jar file...

4)、遇到java文件编码UTF-8 BOM头签名错误(非法字符 \ufeff或者\65279)

这个问题显而易见,就是因为文件编码UTF-8的签名头的问题,使用文本编辑器将文件重新保存为不带BOM头的UTF-8编码文件,OK。我用的是Sublime Text 2。

3、最后结果

release:

BUILD SUCCESSFUL

Totaltime: 1 minute 27 seconds

原文:http://www.cnblogs.com/duwei/p/4270194.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值