NativeBuild
このページについて
NekoVMやFlashにビルドするときはうまくできるけれども、WindowsやAndroid、iOSなどネイティブ環境へのビルドがうまくいかないときの対処法をまとめています
ネイティブ環境へのビルドがうまくいかない場合
最新のhxcpp(v3.2.205)ではビルドエラーが発生することがあります。 その場合は古いバージョンに戻すことで、正常にビルドできるようになります。
まずはバージョン番号の確認
$ haxelib list
hxcpp が v3.2.205 になっている
castle: [1.5.0] flixel-addons: 1.1.1 [2.0.0] flixel-demos: 1.1.2 [2.1.0] flixel-templates: 1.0.2 [2.0.0] flixel-tools: [1.1.2] flixel-ui: 1.0.2 [2.0.0] flixel: 3.3.12 [4.0.0] hscript: [2.0.5] hxcpp: 3.2.193 [3.2.205] # <-- v3.2.205 lime-samples: [2.6.0] lime: 2.8.3 [2.9.0] nape: [2.0.19] openfl: 3.5.3 [3.6.0]
hxcppのバージョン確認
$ haxelib info hxcpp
v3.2.205が最新。v3.2.193が1つ前になっていることが確認できる
…… 2015-11-06 07:47:28 3.2.193 : See Changes.md 2015-12-24 05:28:00 3.2.205 : See Changes.md
hxcpp の v3.2.193をインストール
$ haxelib install hxcpp 3.2.193
再びバージョンを確認
$ haxelib list
hxcppの現在のバージョンが v3.2.193 になっていればOK
castle: [1.5.0] flixel-addons: 1.1.1 [2.0.0] flixel-demos: 1.1.2 [2.1.0] flixel-templates: 1.0.2 [2.0.0] flixel-tools: [1.1.2] flixel-ui: 1.0.2 [2.0.0] flixel: 3.3.12 [4.0.0] hscript: [2.0.5] hxcpp: [3.2.193] 3.2.205 # <-- v3.2.193 がセットされていればOK lime-samples: [2.6.0] lime: 2.8.3 [2.9.0] nape: [2.0.19] openfl: 3.5.3 [3.6.0]
「flixel-ui is not compatible with Haxe 3.2.1 on the cpp target」というエラーメッセージが表示されてコンパイルできない
flixel-uiを使うと、Haxeのバージョンが「3.2.1」の場合にコンパイラのバグでビルドできないようです。そのためコンパイラを「3.2.0」に戻す必要があります。
「3.2.0」に戻すには、古いバージョンで上書きインストールするか、バイナリ(実行ファイル)を上書きすると古いバージョンに戻せます。
なお、このバグはすでに修正されているので、最新版「3.2.2〜」がリリースされれば直ると思われます。
キー入力(FlxG.keys)などでエラーが発生する
モバイル環境(Androidなど)でビルドすると、キーボードやマウスの入力関係は無効(未定義)になります。そのため「#if FLX_NO_TOUCH」「#if mobile」などで処理を分ける必要があります。
#if !FLX_NO_TOUCH // タッチ有効 (モバイル環境) for (touch in FlxG.touches.list) { if (touch.justPressed) { // タッチした } } #else // PCやWebの場合 if(FlxG.mouse.justPressed) { // クリックした } #end