Cocos2d-xでAndroidの開発環境を作る

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


Android SDK Manager

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付属のエミュレータだと遅いため、このエミュレータを使うのが良いようです。

https://www.genymotion.com/

ダウンロードや実行にはアカウントが必要になりますが、個人使用であれば無料で使うことができます。

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の設定

ビルド

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_ABIarmeabix86を指定します。 特にGenymotionで動かす際は-U__SSE__を付けないと意味不明な落ち方をします。

意味不明な落ち方

この設定を追加するとすべてを再ビルドするのでかなりお待ちください。 その間にGenymotionでAndroidでも起動しておきましょう。

cocos run -p android

うまく行くとHello Worldを見ることができます。

Hello World

関連記事

comments powered by Disqus