このページはAndroidでのANEの作成/swcの作成[2]の続きです。
AndroidでのANEの作成/Android側の作成[5]、AndroidでのANEの作成/swcの作成[2]で、必要なものはそろったので、いよいよANEを作成します。
AndroidのANEの作成で最低限必要となるファイルは、
です。 リソースなどを必要とするANEの作成の場合はもう少し増えますが、このサンプルではこれだけです。
この必要ファイルのうちまだ制作していないのはextension.xmlだけです。 ファイル名はこれでなくてもかまいませんが、サンプルなどを見ると慣習的にこの名前が多いようです。 このファイルの内容を間違えると面倒なエラーとなりますので、気をつけてください。 内容は以下の通りです。
<?xml version="1.0" encoding="utf-8" standalone="no"?> <extension xmlns="http://ns.adobe.com/air/extension/22.0"> <id>ANEAlert</id> <versionNumber>1.0.0</versionNumber> <platforms> <platform name="Android-ARM"> <applicationDeployment> <nativeLibrary>classes.jar</nativeLibrary> <initializer>njf.jp.anealert.ANEAlertFREExtension</initializer> </applicationDeployment> </platform> </platforms> </extension>
ここで「http://ns.adobe.com/air/extension/22.0」の最後の数字はAir SDKのバージョンです。間違えるとエラーとなります。
「id」で指定している「ANEAlert」はANEを識別するIDです。これはAndroidでのANEの作成/swcの作成[2]で作成したSWCの「ExtensionContext[9].createExtensionContext[9]」で指定したものと同一でなくてはなりません。
「platform name」はAndroidの場合「Android-ARM」とします。
「nativeLibrary」はjarファイル名です。
「initializer」はAndroidでのANEの作成/Android側の作成[5]で作成したFREExtensionを継承したクラスをパッケージ名から書きます。
ANEの作成ではフォルダ構成も重要となります。
まず基点となるフォルダを作り、その下にanealert.swcとextension.xmlを置きます。さらに「android」というフォルダを作り、その下にclasses.jarとlibrary.swfを配置します。 まとめると以下のようになります。
anealert.swcと同じ階層で次のコマンドを実行します。
adt -package -target ane anealert.ane extension.xml -swc anealert.swc -platform Android-ARM -C android .
「adt」はAir SDKのbinの中にあるコマンドです。 パスを通していない場合はフルパスで記述してください。
「 -package -target ane anealert.ane」の部分で「anealert.ane」という名前のANEの作成を宣言しています。
「extension.xml」は先ほど制作した設定ファイル名です。
「-swc anealert.swc」はSWC名を指定しています。
「-platform Android-ARM」はAndroidのANEであることを宣言しています。
「-C android」はAndroid用のファイルがある場所、つまりlibrary.swfやclasses.jarのあるandroidフォルダを示しています。
最後の「.」(ドット)は基点となるフォルダを表しています。
これを実行すると「anealert.ane」が作成されるはずです。
(This host) = https://njf.jp