tamuraです。 Cocos2d-x v3.8 の環境を作ってみました。 3.7からはAndroidStudioにも一応は対応しています。 が、まだ完全対応ではないのでEclipseか使い慣れたエディタでやるのが良さそうです。
Linux(Ubuntu 14.04LTS)でやっています。
ダウンロードが多いのでかなり時間がかかります。。。
事前準備
以下の環境が必要です。
- JDK 1.7以上
- Apache Ant
- 以下の環境変数を設定しておきます
- ANT_HOME
- ANT_ROOT(${ANT_HOME}/bin)
- 以下の環境変数を設定しておきます
- Python 2.7(2系)
通常のAndroid開発環境の構築
Android SDKとAndroid NDKを落として展開します。
あとはcocos
がうまくやってくれるので、パスの設定や環境変数の設定等は不要です。
SDK
https://developer.android.com/sdk/index.html Other Download Options SDK Tools Only からSDKをダウンロードして展開します。
wget http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz
tar xvzf android-sdk_r24.3.4-linux.tgz
Android SDK Managerを起動してなんか必要そうなものを色々と落としてきます。
android-sdk-linux/tools/android
NDK
https://developer.android.com/ndk/downloads/index.html からNDKをダウンロードして展開します。
wget http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin
chmod a+x android-ndk-r10e-linux-x86_64.bin
./android-ndk-r10e-linux-x86_64.bin
Cocos2d-xの構築
http://www.cocos2d-x.org/download/version ここから落として展開します。
cd cocos2d-x-3.8
./setup.py
ANDROID-SDKとかANDROID-NDKを展開したパスを入力したらセットアップは完了です。
これは ~/.bashrc
に環境変数を追記するだけなので、間違ったらその部分を消してもう一度やり直せば大丈夫です。
hello world
helloworldとかいう名前だと既存とかぶる可能性があるため、HL
というプロジェクトでやっていきます。
cocos new -l cpp HL
cd HL
ls
CMakeLists.txt
Classes
Resources
cocos2d
proj.android
proj.android-studio
proj.ios_mac
proj.linux
proj.win10
proj.win32
proj.win8.1-universal
proj.android
をeclipseで開けば今までどおりeclipseで開発ができます。
proj.android-studio
をAndroidStudioで開けば一応はAndroidStudioで開くことができます。
とりあえずproj.android
下で作業をしていきます。
cd proj.android
cocos compile -p android
最初はC++でコンパイルが走ります。超重いです。
最後にantでビルドプロセスが走り、bin/
下にAndroid用パッケージが生成されます。
これを実機に転送すれば動きます。
エミュレータ
Genymotionというエミュレータがあります。 AndroidSDK付属のエミュレータだと遅いため、このエミュレータを使うのが良いようです。
ダウンロードや実行にはアカウントが必要になりますが、個人使用であれば無料で使うことができます。
chmod a+x genymotion-2.5.2_x64.bin
./genymotion-2.5.2_x64.bin
GenymotionはVirtualBoxを使うため、入っていない場合はVirtualBoxを入れておきます。
設定
adb接続のためにAndroid SDK tools
のパスを設定します。
Use custom Android SDK tools
を選択して、ディレクトリを指定します。
これでcocos
からコンパイル済みのパッケージを転送したり、ログを参照したりすることができます。
ビルド
Genymotionはx86なので、x86用にコンパイルする必要があります。
vi jni/Application.mk
以下の設定を追加します。
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char -U__SSE__
APP_ABI := armeabi x86
コンパイル用のフラグに-U__SSE__
を、APP_ABI
にarmeabi
とx86
を指定します。
特にGenymotionで動かす際は-U__SSE__
を付けないと意味不明な落ち方をします。
この設定を追加するとすべてを再ビルドするのでかなりお待ちください。 その間にGenymotionでAndroidでも起動しておきましょう。
cocos run -p android
うまく行くとHello Worldを見ることができます。