2

誰かが助けてくれることを願っています。

リリース ビルドに Ant を使用する大規模なプロジェクトがあります。これは「ワークスペースと同じ JRE で実行する」必要があります。これは fb4.5 と 4.6 では常に問題ありませんでしたが、4.7 では fb.exportReleaseBuild で java.lang.NullPointerException が発生します。

プロジェクトを 4.6 で読み込んでビルドすることはできますが、これ以上 4.6 を入手することはできないため、これは長期的な解決策ではありません。

次の手順を実行することで、2 台の PC で 4.7 の問題を再現できます。

「buildTest」という名前の新しいフレックス プロジェクトを作成し、ビルド フォルダーを追加し、build.xml という名前の新しいファイルを作成します (ビルド フォルダー内)。ビルド ファイルに次の内容を入力します。

<?xml version="1.0" encoding="utf-8"?>
 <project default="default" basedir="../">
                <!-- target: default -->
                <target name="default">
                               <fb.exportReleaseBuild project="BuildTest"/>
                </target>
 </project>

ビルド ファイルを右クリックし、Run as -> Ant Build... -> JRE (タブ) -> [Run in the same JRE as the workspace] を選択 -> [Run] をクリックします。

4.6 (私のボックスのいずれか) でこれを行うと、正常に動作します。4.7 で実行すると (いずれかのボックスで)、次のエラーが発生します。

ビルドに失敗しました C:\Users\germanD1\Documents\Projects\test Projects\Ant Test\BuildTest\build\build.xml:6: java.lang.NullPointerException

それを作成して 4.7 で失敗するのを確認してから、4.6 で同じプロジェクトを開いて動作するのを確認することもできます!!!

誰かが助けてくれることを願っています。これは私を怒らせています。

どうもありがとうダン

4

2 に答える 2

0

あなたの投稿が少し前のものであることは知っていますが、昨日同じ問題が私を襲ったので、これに直面している他の人のために、私の経験を書き留めておきます。FB 4.7 で ant を使用してコンパイルできず、java.lang.NullPointerException が発生しました。RIAstars のコメントは正しいと思いますが、テクノロジーは終焉を迎え、何らかの理由で Flex/Flash を使用しているため、回避策が必要です。ここで、3 つの可能性が見えます。

  • FB 4.6 と FB 4.7 をマシンに並べてインストールし、FB 4.7 で開発している間に FB 4.6 で Ant タスクを実行します。
  • コマンド ラインから Ant 内で build.xml を実行できるようにします (Windows の場合: ant をダウンロードし、環境変数 ANT_HOME とパス (追加) を ant のインストール パスに設定し、sdks\4.11.0\ant\ を渡します)。 lib\flexTasks.jar を ant の lib フォルダーに移動し、コマンド ラインで build.xml フォルダーに移動し、ant と入力して Enter キーを押します)。
  • 別の IDE を試してみてください。いくつかあります (例: Flash Builder の高速な代替手段を確認してください) 。

私の場合、モジュラープロジェクト構造で実行するために fb.exportReleaseBuild で失敗しました。最初に自分のプロジェクトから -dump-config (コンパイラ オプション) を実行して ant スクリプトを作成し、sourcemate から ant スクリプトを生成します (約 50% の作業と ant 構文の適切な紹介を行いますが、機能するのはFB 4.6で笑)。このベースに基づいて、ant ビルド ファイルを作成し、調査と試行錯誤を繰り返して段階的にエラーを修正しました (初めて ant を使用しました)。cmd ラインで ant を使用して、リリース ビルドを作成します。

まあ、すべて非常に面倒で時間がかかります-このようなリリースビルドを行うことですが、少なくともそれは機能し、自動化されています.

于 2014-01-23T12:12:35.893 に答える