概述
在一般的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 編輯過