Android程序自动化打包(ant多工程)及相关问题处理
|
admin
2014年11月24日 21:54
本文热度 5715
|
概述
在一般的Android开发中,我们通常使用Eclipse自带的导出工具来进行App的签名和发布,Android自动化打包,就是利用脚本将这样一个手动操作的过程转化为一个命令搞定。
需要配置好JDK、Android SDK和Ant的环境,具体参见本人的上一篇博客:
点击打开链接
- 准备好项目的源码和依赖库源码,最好放在同一级目录下,确保源码和依赖库可在IDE中编译成功,这样就无需调整project.properties文件中依赖库的相对位置了。
- 打开CMD命令行,进入到依赖库源码目录,执行android update lib-project -p . -t android-17,这个命令的作用是在依赖库下生成自动打包相关的文件,-p .的意思是在当前根目录下执行,-t android-17的意思是此源码使用android-17 api进行编译,各位根据自己的项目情况自行修改,所有的依赖库都要执行这一步操作。
- 打开CMD命令行,进入到源码根目录,执行android update project -p . -t android-17,这个命令的作用是在源码下生成自动打包相关的文件。
- 打开CMD命令行,进入到源码根目录,执行ant clean,然后ant debug,如果打包成功,可以在源代码的bin目录下看到未签名的apk文件。
- 想要生成签名文件,需要在源码根目录下建立ant.properties文件,内容如下:
- #包名
- application.package=com.nomouse
- #项目名,缺省时源码文件名
- ant.project.name=
- #编码方式
- java.encoding=utf-8
- #编译输出绝对路径
- out.absolute.dir=d:/out
- #生成文件绝对路径
- gos.path=d:/out
- #签名key文件绝对路径
- key.store=D:/adt-bundle/Nomouse
- #签名文件密码
- key.store.password=password
- #签名别称,中文的话需要转成utf-8编码,可以使用JDK自带的native2ascii工具
- key.alias=\u4f01\u4e1a
- #签名别称密码
- key.alias.password=password
- 打开CMD命令行,进入到源码根目录,执行ant release,成功的话可以在d:/out目录下看到输出的App签名文件。
问题一:
用Ant编译时报如下错误
compile:
[javac] Compiling 1 source file to D:\workspace\cwk\build\classes
[javac] D:\workspace\cwk\src\core\com\cwk\core\web\action\LoginController.java:1: 非法字符: \65279
[javac] package com.cwk.core.web.action;
[javac] ^
[javac] 1 错误
BUILD FAILED
D:\workspace\admet\build.xml:181: Compile failed; see the compiler error output for details.
该问题是由于文件的字符编码不正确,请用notepad++保存文件格式为utf-8无DOM格式
问题二:
[aapt] invalid resource directory name: E:\我的依赖工程\bin\res/crunch 这个问题一般是因为sdk的版本比较高,会自动生成crunch目录,而ant的在编译的时候总是不识别bin下编译好的资源,所以忽略crunch目录就好了
解决方法:打开本地sdk根目录tools》ant》build.xml 找到: <property name="aapt.ignore.assets" value="" /> 改为: <property name="aapt.ignore.assets" value="crunch" /> 问题得到解决。
问题三:
解决方法如图所示:
该文章在 2014/11/24 21:54:12 编辑过