FlashDevelopでAIR書き出しの環境設定
AIRアプリって作ったことが無いので、手順だけでも覚えておこうと思い、トライしてみました。
ところが、、、エラーが起こってAIRアプリの書き出しができず、しばらく右往左往してしまいました。今回の記事はその問題と、解決方法です。
開発環境
FlashDevelopではプロジェクト作成メニューで、「AIR AS3 Projector」という項目を選択して作成することによって、AIRアプリケーション書き出しに必要なファイルが自動作成されます。
AIRアプリケーション書き出しの手順(オプションをすっ飛ばして最低限。)
生じた問題
- 書き出し手順とは直接関係ないが、プログラムのプレビュー時にエラー
エラーメッセージ:
invalid application descriptor: descriptor version does not match runtime version
- PackageApp.batの実行時にエラー
エラーメッセージ:
application.xml: error 102: Invalid namespace http://ms.adobe.com/air/application/3.0
以上2つのエラーですが、問題と解決方法は共通です。
問題
application.xmlファイルの記述において
<application xmlns="http://ns.adobe.com/air/application/3.0">
というタグがあるのですが、この末尾にある 3.0 という数字が、AIRのランタイムのバージョンと一致していないことが原因でした。
では、AIRランタイムのバージョン番号と一致するように
落とし穴
プログラム一覧にあるAIRランタイムのバージョン確認したけど、合ってるよ!
という具合に、Windowsに現在インストールされているAIRランタイムのバージョンと
この落とし穴に陥っている場合の問題は、Windowsの環境変数に、以前にインストールした古いバージョンのflexSDKへのパスが設定されていることになります。
Windowsの環境変数に設定されているflexSDKへのパスは自分が意図しているものか?
実はFlashDevelopがAIRアプリ書き出し時に参照しているAIRランタイムのパスは、プログラム一覧に出てくるAIRランタイムとは別なのです。ではFlashDevelopがどこのflexSDKのランタイムを参照しているかというと、Windowsのシステム環境変数から確認することができます。
最終的な解決方法
環境変数に設定されている古いSDKへのパスを、新しいflexSDKへのパスに書き換える。
システム環境変数の参照と変更
コントロールパネル ↓ システム ↓ 詳細設定タブ ↓ 環境変数 ↓ 「システム環境変数」の項目において ↓ 「Path」の項目を選択 ↓ 編集
と操作すると環境変数が編集できるようになります。さまざまなアプリケーションの環境変数がコロン(;)で区切られて連続しているのですが、そのなかに
C:\FlexSDKをインストールしたディレクトリ\flex_sdk_3.4.0.6955\bin;
というようなflexSDKに関する環境変数があります。(当方の場合)この中の
flex_sdk_3.4.0.6955
というのが現在Windowsで実行されるflexSDKのディレクトリ(≒AIRのランタイム)となります。
自分の場合はflex_sdk_3.4.0.6955というバージョンのSDKが設定されているということになりますが、これは以前にインストールしたもので、自分が使いたいバージョンではありません。FlashDevelopの設定では新しいSDKディレクトリへのパスを設定していたのですが、Windowsの環境変数は更新されず、古いSDKへのパスのままだったのです。
よって、環境変数を
C:\FlexSDKをインストールしたディレクトリ\flex_sdk_3.4.0.6955\bin;
となっているものを
C:\FlexSDKをインストールしたディレクトリ\flex_sdk_4.5.1.21328\bin;
というように、自分が使いたいflexSDKのbinディレクトリへのパスに書き換えることによって解決します。
(くれぐれも、他のアプリケーション用の環境変数を誤って変更したり、消したりしないように注意してください。コロン ; が区切りですよ。)
flexSDKへのパスは、各自どこにSDKを置いたかによって異なるので自分がSDKを置いた場所を確認してください。
なお、flexSDKに含まれるAIRランタイムの確認方法は、
SDKをインストールしたディレクトリ\bin
のディレクトリ内に、「adl.exe」というプログラムファイルがあるので、右クリック→プロパティ
で「バージョン情報」タブの「製品バージョン」項目を選択すると知ることができます。
以上のように環境変数に自分の意図したAIRランタイムが含まれるflexSDKを指定することで、無事にAIRアプリが書き出せるようになりました。