cocos2d-xのコマンドラインビルド
cocos2d-xのC++プロジェクトでコマンドラインビルドをやることがあったのでメモ。
コマンドラインからapkファイルをビルドをするためにはantを使う。
Gradleでもできるらしいがこっちは未調査。
まずは以下のソフトをインストールしてパスを通す。
- AndroidSDK(http://developer.android.com/sdk/index.html)
- Android NDK(https://developer.android.com/tools/sdk/ndk/index.html)
- パス(例): "C:\android-ndk"
- ant(http://ant.apache.org/)
- パス(例): "C:\apache-ant\bin"
これで android, adb, ndk-build, ant が使えるようになる。
次にandroidプロジェクトをupdateする。
android project update -p "プロジェクトのパス"
cocos2d-xは最初からant用のprojectが作成されているためupdateだけでいい。
updateする対象は最低限 project/プロジェクト名/proj.android と cocos2dx\platform\android\java の二つ。
ほかにプロジェクトを追加したらそれもupdateする必要がある。
とりあえずこれでプロジェクトのディレクトリで
ant debug
を実行すると bin ディレクトリ内にapkが作成されるはず。
Eclipseと並列でビルドしていた場合にはエラーが起こることがあるので、その場合は
ant clean build install
とすればcleanした後にビルドしてくれる。また、installとつけることにより、端末にインストールまでしてくれる。
初期設定のままだとJava部分だけビルドするようなので、C++ はcleanされない。
cocos2d-xはJava部分が少ないため、毎回リビルドしてもたいして時間はかからない。そのため、毎回cleanをつけたほうが良さげ。
また、antはJavaしかビルドしてくれないため、build_native.sh を事前に実行し、assetsファイルのコピーおよびC++のビルドを行う必要がある。
よってapkを作成するには
bash build-native.sh ant clean debug install
と実行すれば端末にデバッグビルドがインストールされる。
releaseビルドを作成するには単に
bash build-native.sh ant clean release install
とすればいいが、apkのインストールに失敗する。
releaseビルドの設定についてはまた次回。