LoginSignup
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2013-04-15

コンパイルエラーが出ずに、ランタイム上で動かなくなる

下記によるとエラーが出る場合があるとのこと

-hideAneLibSymbols:(iOS のみ、AIR 3.4 以降)アプリケーション開発者は、複数のソースの複数のネイティブエクステンションを使用できます。また、複数の ANE で同じシンボル名が共有されている場合、ADT では「オブジェクトファイルでシンボルが重複している」という内容のエラーが生成されます。場合によっては、このエラーにより、実行時にクラッシュが発生する可能性もあります。hideAneLibSymbols オプションを使用すると、ANE ライブラリのシンボルをそのライブラリのソースのみに表示するか(yes)グローバルに表示するか(no)を指定できます。

Adobe AIR * ADT package コマンド

自分が直面した問題は、

  • コンパイル時: エラーなし
  • ランタイム上: 以下のエラーが出た
    • #3500: The extension context does not have a method with the name hogehoge

(ちなみに、このエラーはANEにないメソッドを呼ぶと起こるやつ。つまりANEがなんかの理由でおかしくなってる)

動かない例は TestFlightのANEとViberationのANEを同時に使うとき

  • com.adobe.Vibration
  • com.adobe.ane.TestFlightImpl

同時に使うとTestFlightのANEが動かなくなる。なぜか両方ともAdobeパッケージ!

解決策 → FlashBuilder4.7でやるか、adtコマンドでやるか

それか
adtコマンドに-hideAneLibSymbolsを追加するといけるらしいが、IDEと連携してないとなんしかきつい。

IDEAでの設定方法

設定方法
[ProjectStructure] → [iOSのタブ] → Additional ADT options に
-hideAneLibSymbols yes
を追加。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6