- 概述
- 准备
- 步骤
- 准备好项目的源码和依赖库源码,最好放在同一级目录下,确保源码和依赖库可在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" /> 问题得到解决。