概述
在一般的Android開發(fā)中,我們通常使用Eclipse自帶的導(dǎo)出工具來進(jìn)行App的簽名和發(fā)布,Android自動(dòng)化打包,就是利用腳本將這樣一個(gè)手動(dòng)操作的過程轉(zhuǎn)化為一個(gè)命令搞定。
- 準(zhǔn)備好項(xiàng)目的源碼和依賴庫源碼,最好放在同一級(jí)目錄下,確保源碼和依賴庫可在IDE中編譯成功,這樣就無需調(diào)整project.properties文件中依賴庫的相對(duì)位置了。
- 打開CMD命令行,進(jìn)入到依賴庫源碼目錄,執(zhí)行android update lib-project -p . -t android-17,這個(gè)命令的作用是在依賴庫下生成自動(dòng)打包相關(guān)的文件,-p .的意思是在當(dāng)前根目錄下執(zhí)行,-t android-17的意思是此源碼使用android-17 api進(jìn)行編譯,各位根據(jù)自己的項(xiàng)目情況自行修改,所有的依賴庫都要執(zhí)行這一步操作。
- 打開CMD命令行,進(jìn)入到源碼根目錄,執(zhí)行android update project -p . -t android-17,這個(gè)命令的作用是在源碼下生成自動(dòng)打包相關(guān)的文件。
- 打開CMD命令行,進(jìn)入到源碼根目錄,執(zhí)行ant clean,然后ant debug,如果打包成功,可以在源代碼的bin目錄下看到未簽名的apk文件。
- 想要生成簽名文件,需要在源碼根目錄下建立ant.properties文件,內(nèi)容如下:
- #包名
- application.package=com.nomouse
- #項(xiàng)目名,缺省時(shí)源碼文件名
- ant.project.name=
- #編碼方式
- java.encoding=utf-8
- #編譯輸出絕對(duì)路徑
- out.absolute.dir=d:/out
- #生成文件絕對(duì)路徑
- gos.path=d:/out
- #簽名key文件絕對(duì)路徑
- key.store=D:/adt-bundle/Nomouse
- #簽名文件密碼
- key.store.password=password
- #簽名別稱,中文的話需要轉(zhuǎn)成utf-8編碼,可以使用JDK自帶的native2ascii工具
- key.alias=\u4f01\u4e1a
- #簽名別稱密碼
- key.alias.password=password
- 打開CMD命令行,進(jìn)入到源碼根目錄,執(zhí)行ant release,成功的話可以在d:/out目錄下看到輸出的App簽名文件。
問題一:
用Ant編譯時(shí)報(bào)如下錯(cuò)誤
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 錯(cuò)誤
BUILD FAILED
D:\workspace\admet\build.xml:181: Compile failed; see the compiler error output for details.
該問題是由于文件的字符編碼不正確,請(qǐng)用notepad++保存文件格式為utf-8無DOM格式
問題二:
[aapt] invalid resource directory name: E:\我的依賴工程\bin\res/crunch 這個(gè)問題一般是因?yàn)閟dk的版本比較高,會(huì)自動(dòng)生成crunch目錄,而ant的在編譯的時(shí)候總是不識(shí)別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 編輯過