2

現在、iOS および Android 用の Adob​​e AIR プロジェクトに取り組んでいます。
ANT ビルド スクリプトを実行する Jenkins で自動的にビルドします。さまざまなコンパイル (リリース バージョンとテスト バージョン) に基づいてアプリケーションのさまざまなバージョンをパッケージ化し、テスト バージョンにはさらに多くの異なる構成がパッケージ化されます。

ここまでは順調ですね。ビルドは、AIR 3.6 SDK と組み合わせて ANT 1.8.4 を実行しているローカル マシンで動作します。

問題は、Jenkinsマシン(Mac Mini) でビルドが失敗し、次のようなエラー メッセージが表示されることがあることです

package-android-versions:
   [delete] Deleting directory /private/var/jenkins/workspace/**********/dist/android/release
    [mkdir] Created dir: /private/var/jenkins/workspace/*************/dist/android/release
     [echo] packaging for android...
     [echo] done
   [delete] Deleting directory /private/var/jenkins/workspace/************/dist/android/test/dummy
    [mkdir] Created dir: /private/var/jenkins/workspace/**************/dist/android/test/dummy
     [echo] packaging for android...
     [java] SDK component at air/android/device/Runtime.apk is out of date

お気づきかもしれませんが、最初のパッケージ コマンドは成功するため、SDK コンポーネントが古くなっているとは考えられません。その場合、最初のパッケージ コマンドも失敗します。

以下は、関連する ANT ビルド コマンドです。

        <echo>packaging for android...</echo>
        <java jar="${AIR_SDK_HOME}/lib/adt.jar" fork="true" failonerror="true">
            <jvmarg line="-Xmx1024m" />
            <jvmarg line="-XX:MaxPermSize=2048m" />
            <arg line="-package"/>
            <arg line="-target apk-captive-runtime"/>
            <arg line="-storetype pkcs12 -keystore '${dir.portal}/self-signed.p12' -storepass ******"/>
            <arg line="'@{destination}/${app.name}@{label}' '@{source}/${app.descriptor}'" />
            <arg line="-C '@{source}' ."/>
            <arg line="-C '${dir.assets.runtime.android}' ."/>
        </java>
        <echo>done</echo>

Java コマンドで使用できるメモリの量を増やしてみましたが (私の経験では、これが失敗の原因になることが非常に多いため)、ここでは解決策ではありません。

また、私はこの同様の質問への回答を見てきましたが、私たちのビルド マシンはコンパイルとパッケージングの間にコーヒーを飲みに行かないので、それは本当の答えにはなりません ;)

他のアイデアはありますか?

4

1 に答える 1