6
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

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

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

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

-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
を追加。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
6
Help us understand the problem. What are the problem?