あーるPG - 社会人のデジタル生活

日曜プログラマになろうかなーと思った30代理系社会人の、キャリアアップや趣味(特にデジタル情報)の記録。らーめんとビールが好き。

{cocos2d-x]cocos2d-xのサンプルをandroidで動かす(WindowsXP)

前も言いましたが

「cocos2d-x」はC++等で記述できるのがウリですが、androidの標準開発言語はJavaです。
2言語の溝を埋めるのが「JNI」というインターフェースです。
C++ソースコードはJNI用にネイティブビルドされ、JavaはJNIを介してそのC++部分を呼び出します。

C++のネイティブビルドはndk-buildコマンドで行います。このために「Cygwin」が必要となります。
androidアプリを実行するには「eclipse」というIDEが必要となります。

前回のNDKのセットアップ まで無事に完了しているものとして、cocos2d-xのサンプルを動かします。

cocos2d-xをインストールする。

http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download
設置場所は短めのディレクトリパスにしておくのが吉。

例:c:\bin\cocos2d-x

サンプルをそのままコピーしてきて動かすテスト

ターゲットはHelloCppサンプルとする。
1.予めWindowsの設定で、環境変数を設定する。

  NDK_ROOT=[NDKのディレクトリ(Windowsのパス)]

2.HelloCpp/proj.android/build_native.sh 内のパスを変更する
  cygwinから見えるパス(/cygdrive/c/...)で指定すること。

  COCOS2DX_ROOT="$DIR/../.."  ←create-android-project.batなどがあるディレクト
  APP_ROOT="$DIR/.."  ←/Resources があるディレクトリ。大抵build_native.shの1つ上。
  APP_ANDROID_ROOT="$DIR"  ←/assetsがあるディレクトリ。大抵build_native.shがある場所

3.cygwin上で、HelloCpp/proj.android/build_native.sh を実行する。
  build_native.shはcocos2d-xのアイコン等リソースをプロジェクトにコピーしてくる。また、C++コードをJNI向けにビルドする。
4.HelloCppディレクトリごと何処か(自分のWorkSpace)にコピーする。
5.$COCOS2DX_ROOT/cocos2dx/platform/android/java/src/org/cocos2dx/lib を [WorkSpace]/proj.android/src/org/cocos2dx 下にコピーする。
  http://d.hatena.ne.jp/okahiro_p/20121228/1356678762
6.cygwin上で、[WorkSpace]/HelloCpp/proj.android/build_native.sh を実行する。
7.Eclipseでプロジェクトを読み込む。
  [File] - [New] - [Project] - [Android] - [Android Project from Existing Code}
  で、[WorkSpace]/proj.android を選択。
8.エラーが無いことを確認して、Runする。

ビルドエラーへの対処

エラーは下ウィンドウのProblems欄に書いてある。

Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

  指示通りの対応でOK。

error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon').

  アイコン指定が違うそうなので、エラーをダブルクリックして、icon
  @drawable/ic_launcher
  に指定。
  参考:http://d.hatena.ne.jp/b-koba5525/20121207/1354856144

「Project has no project.properties file! Edit the project properties to set one.」

  新規にandroid projectを作成する。このときpackageを"com.example"に合わせるのを忘れない。
  project.properties、gen以下のファイルをcocos2d-xのプロジェクトにコピーする。
  Eclipseを再起動する。

cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う! (I・O BOOKS)

cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う! (I・O BOOKS)