2012-10-21 61 views
1

我搜索谷歌和SO的解決方案,但找不到任何。我正在爲android開發移動AIR應用程序,並將Jenkins用作本地CI系統。但是,我的項目編譯得很好,在ADT封裝過程中出現問題。我從下面的例子複製的ADT包裝目標:Jenkins移動空氣android包裝錯誤

http://blog.terrenceryan.com/using-ant-to-package-the-same-air-app-to-multiple-devices/

https://gist.github.com/630170

但是,我得到這個輸出詹金斯:http://d.pr/i/y2gJ

這是在我的build.xml文件中包裝零件(使用重要的屬性名稱和值):

... 
... 
<property name="APP_NAME"     value="Hightide"/> 
<property name="ANDROID_HOME"    value="${user.home}/../../../Supermaggel/SDKS/android-sdk-macosx" /> 
<property name="APP_DESCRIPTOR"    value="${SOURCE_DIR}/${APP_NAME}-app.xml" /> 
<property name="SWF_FILE"     value="${APP_NAME}.swf" /> 
<property name="OUTPUT_LOCATION_ANDROID" location="${BUILD_DIR}/android" /> 
<property name="OUTPUT_SWF_ANDROID"   location="${OUTPUT_LOCATION_ANDROID}/${SWF_FILE}" /> 
<property name="OUTPUT_APK_ANDROID"   value="OUTPUT_LOCATION_ANDROID/${APP_NAME}.apk" /> 
...  
... 
<!-- PACKAGE ANDROID --> 
<target name="package-android"> 
    <echo message="Packaging for Android"/> 
    <exec executable="${ADT}" dir="${OUTPUT_LOCATION_ANDROID}"> 
     <arg line="-package"/> 
     <arg line="-target apk"/> 
     <arg line="-storetype pkcs12"/> 
     <arg line="-keystore ${KEYSTORE_ANDROID}" /> 
     <arg line="-storepass ${STOREPASS_ANDROID}" /> 
     <arg line="${APP_NAME}"/>     <!-- output .APK --> 
     <arg line="${APP_DESCRIPTOR}"/>   <!-- app descriptor location --> 
     <arg line="${OUTPUT_SWF_ANDROID}"/>   <!-- output --> 
    </exec> 
</target> 

我正在使用Jenkins ver。 1.486,Flash Builder 4.6,AIR 3.3。

任何人都可以指出包裝過程中出了什麼問題嗎?任何論點缺失或解釋錯誤?

+0

我意識到我在包裝目標中有一些錯誤,我更新了它們,但是我仍然收到錯誤... –

回答

0

我發現是什麼引起的。 ADT cli工具提供退出代碼2,這意味着參數有問題......我花了數小時查看它,試圖弄清楚什麼是錯誤的。對於ADT,您需要傳遞相對路徑,而不是「絕對」路徑(或者相對於項目根目錄),而不是$ {PROJECT_ROOT}/packagedir/$ {APPNAME} .apk僅使用packagedir/$ {APPNAME}。 apk或類似的東西,適用於所有路徑。