Haxe OpenFL: Android 出力設定
OpenFL のインストール & 設定作業を行なっていく中、少々わかりずらかった点と、エラーが発生するも公式サイトに解説が見つからなかった点を以下に記述します。Windows での Android 用出力設定の話となりますが、Mac の場合でも適用できます。
公式 OpenFL インストール方法解説ページ
https://github.com/openfl/openfl/wiki/Get-Started
openfl setup android コマンド
openfl setup android コマンドを実行すると、以下の四つのソフトのインストールを促されます。
・Android SDK
・Android NDK
・Apache Ant
・Java JDK
ソフトインストール後は、それぞれのソフトをインストールしたディレクトリパス指定を促されます。ここで、ソフトをインストールしたディレクトリ内にある bin ディレクトリ等へ指定すると後にエラーが発生します。
私の場合は以下のように設定しました。
JREではなくJDK
これは私が勘違いしてしまっていただけの話となります。
Java 関連のソフトウェアのインストールの文字を見て「すでに JRE がインストールされているから必要ないだろう」と考えてしまいましたが、JRE(Java Runtime Environment) ではなく JDK(Java Development Kit) のインストールが必要となります。
インストール後、環境変数からの bin ディレクトリのパス設定はたぶん必要ありません。
Android NDK 64bit 版の場合 実行コマンドでエラーが発生
いざ android をターゲットとしたファイル出力を行なってみようとすると、以下のエラーが発生しました。
arm-linux-androideabi-g++: command not found
arm-linux-androideabi-g++.exe ファイルは Android NDK をインストールしたディレクトリ内にいくつか存在しますが、どうもその exe ファイル位置が特定できずコマンドが実行されないというエラーとなります。
原因は Android NDK の 64bit 版をインストールしたため、となります。Windows 32bit 版の場合、arm-linux-androideabi-g++.exe を配置しているディレクトリの中途パスに「windows」というディレクトリがあるのに対し、64bit 版の場合は「windows-x86_64」というディレクトリとなります。
しかし OpenFL からは 32bit 版のディレクトリを見に行ってしまうようで、arm-linux-androideabi-g++.exe が見つからず実行できない、というエラーが発生してしまいます。
対処法としましては以下のファイルの編集を行います。
C:\Users\ユーザー名\.hxcpp_config.xml
xml ファイル内最後に、以下のように setenv タグを追加します。
<xml> <section id="vars"> ... </section> <section> ... </section id="exes"> <setenv name="ANDROID_HOST" value="windows-x86_64" /> </xml>
これで OpenFL は 64bit 版ディレクトリを見に行ってくれます。
参考) Mac OS 64bit 版の情報
https://plus.google.com/107757129156852236156/posts/C4Uu8SvFy44
追記 2014年4月1日
新たに OpenFL の環境構築を行ってみると「Android NDK 64bit 版の場合 実行コマンドでエラー」の問題は解決されているようで、.hxcpp_config.xml の編集を行う必要はなくなりました。
また、新たに OpenFL の環境構築を行う場合、以前の .hxcpp_config.xml ファイルは一旦削除した後、「lime setup android」コマンドで再度 Android 用環境構築を行う必要があるようです。以前の .hxcpp_config.xml ファイルが残ったままだと build コマンドでエラーが発生してしまいました。