鳥小屋.txt

主に自作ゲームをつくったりしているよ。制作に関することやそうじゃないことのごった煮ブログ

Adobe AIRのサンプルコードが実行できない……

2011/9/12 ちょっぴり追記
2011/9/30 コメントで情報いただいたので反映

昨日の続き、ではなくて何故かAdobeAIRたんの話。
ちょっとしたことがあって、AIRでHTML+JavaScriptなアプリを作ることに。

準備

まずはAdobeAIR SDKをダウンロード!
http://www.adobe.com/jp/products/air/sdk/

僕はWindows君なので右側のWindows版をダウンロード。
ところでUbuntuじゃできないのかな……?

DLしたら、いつもの D:\Lib ってところに入れて、
環境変数でパスもちゃんと通してあげました。


次はとりあえずHellow,World!して、それを改変して遊ぼうか。
さっそく公式のサンプルをコピペ。
http://help.adobe.com/ja_JP/air/build/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html

これで対面、AIRアプリ……!

と思ったらエラー

D:\Works\Project\air\HelloWorld>adl HelloWorld-app.xml
invalid application descriptor: descriptor version does not match runtime version

なんかエラーでたー! 本家のコピペなのに!
「ですくりぷたー?のバージョンがランタイムのバージョンと違うわ死ね」ってことらしい?
よくわからないのでググってみると、

<application xmlns="http://ns.adobe.com/air/application/2.7"> 

ここの末尾のバージョンがSDKのバージョン以下だとダメ?みたいな感じ。
でもSDKは今さっきダウンロードしたんだから最新の2.7なのに……なんで?

そして犯人発覚

もしかしてadl.exeが他にもあったりしないだろうか?と思って捜索開始。
すると、

>where adl
D:\Lib\flex_sdk\bin\adl
D:\Lib\flex_sdk\bin\adl.exe
D:\Lib\AdobeAIRSDK\bin\adl.exe

OH! まさかのAdobeFlexSDKの中に同梱!
FlexSDKは昔ダウンロードしてそのままだったので、古いバージョンが動いてたっぽいです。
こいつぁ盲点だったぜぇ……

環境変数の順番を入れ替えて、先にAIR SDKのほうが読み込まれるように変更。
これですべて解決しましたとさ、やったね!

おまけ

もしかしてFlexSDKを最新版にすれば、AdobeAIR SDKって入れなくていいんじゃない?
と思ってさっそく更新してみたところ

invalid application descriptor: Unknown namespace: http://ns.adobe.com/air/appli
cation/2.7

普通にダメでしたとさ><

追記(2011/9/12)

どうも噂によるとAIR SDKはFlex SDKに上書きしちゃっていいっぽい?
確かに入ってるファイル被ってるし……

さらに追記(2011/9/30)

コメントで教えていただきました!
やっぱり上書きするのが正しいそうです。

Flash Builder および Flash Professional での AIR SDK の使用

(略)

AIR SDK アーカイブの内容を展開し、既存の SDK ファイルを上書きします。

http://www.adobe.com/support/documentation/jp/air/2/releasenotes_developers.html

Adobe先生の言うことちゃんと聞かないとだめですね……
教えていただきありがとうございました!