天天看點

在Hudson中,使用ant自動對安卓項目編譯打包apk

      本文對如何在hudson中配置ant編譯打包apk進行說明,主要包括build.xml檔案的編寫、環境的配置、在hudson中建立任務。

一、為安卓項目建立build.xml檔案

1、打開cmd進入sdk目錄下的tools目錄,輸入: android.bat list target  來查詢我們現有的版本list有哪些。如下圖:

在Hudson中,使用ant自動對安卓項目編譯打包apk

途中用紅框圈出的 id 與藍框圈出的版本号對應關系,下面需要用到。

2、打開安卓項目工程下的 project.properties 檔案,檢視target 版本号,如下圖:

在Hudson中,使用ant自動對安卓項目編譯打包apk
在Hudson中,使用ant自動對安卓項目編譯打包apk

3、使用指令 android update project -n webviewsession -t 19 -p e:\lenovocw\▲技術解決方案\安卓webview的session傳遞\webviewsession 在工程下生成build.xml檔案,如下圖所示:

-n 對應的是項目名稱

-t  就是我們之前查詢的sdk版本對應的id,大家根據自己的項目版本做出選擇即可,我這個是android 4.4.2 是以用id 19

-p 就是生成的路徑

在Hudson中,使用ant自動對安卓項目編譯打包apk

此時,項目中自動生成了 build.xml 和 local.properties 2個檔案

檢視在 build.xml 檔案可以發現,build.xml 檔案讀取了local.properties 和 ant.properties 2個配置檔案,最後引用了 sdk 下面的 build.xml 檔案。

如果我們需要在訂制自己的target,需要用到一些配置參數,我們把它放到 local.properties 中即可,生成的 local.properties 檔案中已自動指定了我們的sdk目錄。

4、配置簽名證書的資訊,讓 ant 為我們自動打包并使用我們 配置的證書進行簽名

在項目工程下添加 ant.properties 檔案,配置我們的證書資訊,如下圖所示:

在Hudson中,使用ant自動對安卓項目編譯打包apk

至此,我們可以對android 項目進行ant 打包了。

如果我們項目引用了外部jar包,使用ant build建構項目時出現的"crunch" 錯誤,如下:

出現以上編譯錯誤,解決辦法如下:

方法1:在系統tool/ant/build.xml檔案中指派<property name="aapt.ignore.assets" value="crunch" />

方法2:在自己項目build檔案中添加<property name="aapt.ignore.assets" value="!.svn:!.git:\x3cdir\x3e_*:.*:!cvs:!thumbs.db:!picasa.ini:!*.scc:*~:crunch" />

不想去修改sdk内部的build.xml 檔案,是以我在項目中生成的 build.xml 檔案使用了方法2做了配置。

下面是我的項目下 build.xml 的代碼,提供參考。

二、在伺服器上配置android-sdk環境(我用的是linux系統,window是開發環境不再單獨說明,使用是一樣的)

下載下傳 linux 版本的 android-sdk ,上傳到伺服器上,解壓縮包後的目錄結構如下所示:

android-sdk-linux

 - tools

- android - ant - apps - ddms - draw9patch - emulator - emulator64-arm - emulator64-mips - emulator64-x86 - emulator-arm - emulator-mips - emulator-x86 - hierarchyviewer - jobb - lib - lint - mksdcard - monitor - monkeyrunner - notice.txt - proguard - screenshot2 - source.properties - support - templates - traceview - uiautomatorviewer

 - platform-tools

- adb - api - dmtracedump - etc1tool - fastboot - hprof-conv - sqlite3 - systrace

 - platforms

- android-19

 - build-tools

- 20.0.0

三、在hudson中建立任務(至于怎麼安裝hudson,這裡就不做贅述了)

1、在hudson中建立一個任務,輸入projectname,一般我們勾選“use custom workspace”使用自己的工作空間目錄,如下圖:

在Hudson中,使用ant自動對安卓項目編譯打包apk

2、配置svn資訊,hudson會根據我們配置的svn資訊幫我們從svn中更新代碼,如下圖所示:

在Hudson中,使用ant自動對安卓項目編譯打包apk

3、我們可以根據需要勾選build perodically schedule,這個是交給hudson自動幫我們在指定的時間内執行這個任務,如下圖所示:

     關于表達式的配置可以點選後面的問号檢視簡單的說明,輸入的内容可以是多行的。

在Hudson中,使用ant自動對安卓項目編譯打包apk

4、配置ant 

     選擇已經安裝的ant,指定build.xml中需要執行的targets,指定build.xml 檔案(. 開頭是相對路徑,也可以使用絕對路徑),然後可以在properties中輸入我們需要在build.xml檔案中需要的變量,用key=value的格式編寫,每行寫一個鍵值對。

在Hudson中,使用ant自動對安卓項目編譯打包apk

5、點選底部的儲存按鈕儲存任務。

--------------------------------------------

備注:

如果在linux上使用ant編譯打包apk的時候,出現下面的錯誤:

/usr/local/android-sdk-linux/tools/ant/build.xml:698: execute failed: java.io.ioexception: cannot run program "/usr/local/android-sdk-linux/build-tools/22.0.0/aapt": error=2, no such file or directory

解決方案詳見:http://blog.csdn.net/catoop/article/details/47157631

繼續閱讀