我搜索谷歌和SO寻求解决方案,但找不到任何解决方案。我正在为Android开发一个移动AIR应用程序,我使用Jenkins作为本地CI系统。我的项目编译得很好,但是,在ADT包装过程中出了问题。我从以下示例中复制了ADT打包目标:
http://blog.terrenceryan.com/using-ant-to-package-the-same-air-app-to-multiple-devices/
和
https://gist.github.com/630170
但是,我在Jenkins中得到了这个输出: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或类似内容。