在升級到 Version22 之後,Android SDK Tools 的 ant 自動編譯腳本運行出現錯誤,導致為 Jenkins 配置的批處理腳本無法執行,一直發送錯誤郵件。經過調查後發現,Android SDK Tools 升級後文件和目錄結構發生了變化,主要包括以下內容:
- Android SDK Tools 22 之後的版本中,tools 目錄中將不包含以下兩個文件:
- tools\zipalign.exe
- tools\sqlite3.exe
以上兩個文件已經移動到各自的 platform-tool 和 build-tools 目錄下,對應的路徑如下:
- build-tools\android-xx\zipalign.exe
- platform-tools\sqlite3.exe
如果需要使用這兩個文件,需要手動複製到 tools 目錄下,或者將其添加到 PATH 變量中。
Windows 環境下的配置:
set PATH=c:\android-sdk-windows
set ANDROID_VER=android-13
set PATH=%PATH%;%ANDROID_HOME%\build-tools\%ANDROID_VER%\;
set PATH=%PATH%;%ANDROID_HOME%\platform-tools\;
Linux/MacOS 環境下的配置:
export ANDROID_HOME=/var/share/android-sdk-macosx;
export ANDROID_VER=android-13
export PATH=${PATH}:${ANDROID_HOME}/build-tools/${ANDROID_VER}/;
export PATH=${PATH}:${ANDROID_HOME}/platform-tools;
原來使用的腳本請參考 http://www.lidaren.com/archives/1328
另外,tools\lib 目錄下不包含 EMMA 覆蓋率相關的以下三個文件:
- tools\lib\emma.jar
- tools\lib\emma_device.jar
- tools\lib\emma_ant.jar
這導致以下錯誤:
Could not load definitions from resource emma_ant.properties. It cou
ld not be found.
和
Problem: failed to create task or type emma
Cause: The name is undefined.
需要將以上三個 jar 包導入到 tools\lib 目錄下,如果可能,建議同時放到 ant 的 lib 目錄下。