ANEでContextInitializerは名前を変えないとトラブル発生

最近はずっとAIRでiPhoneアプリ作ってるんですが(来る日も来る日もUI作成…)、ANEを作って使う際にちょっとハマったのでメモ。

XcodeでContextInitializerだとかExtInitializerだとかを書くようにAdobeの公式記事に書いてあるんで、よくわからないなりにそのまま記事の通りに書くと思うんですよね。しかしこの名前は、他のANEと重複してはいけないようで。複数のANEを使うと、パッケージ時に「duplicate symbol」だと怒られたり、あるいは実行中に「The extension context does not have a method with the name XXXX」とエラーが出ます。

AIR for iOS で複数のANEを使うと、まったく使えなくなる場合がある

で、上記サイトによればadtコマンドでパッケージングする場合は「-hideAneLibSymbols yes」とオプションを入れれば回避でき、Flash Builderでも設定があるようです。ただ、自分の場合はFlash CS6でやってるので、これにまだ対応していない(CCで対応して欲しい……)。そういう場合は、HogeHogeContextInitializerのように独自の名前にして他と被らないようにすればOKです。が、第三者から入手したANEの場合はソースコードがない限りどうにもならないので、早いところIDEで対応してほしいものです……(ていうかなんで自分でオプション追加できる仕様じゃないの)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です