2013年1月30日水曜日

cocos2d-xをAndroidでも動かす

目標:cocos2dxのプロジェクトがAndroidでも動くようにする。

動作確認した環境
Eclipse:Indigo
XCode:4.3.2
AndroidNDK:r8d
Cocos2d-x:cocos2d-2.0-x-2.0.4 
ADT:21.0.0.


・環境構築…省略
http://mdlab.jp/project/framework/01.html
こちらを参考にしました。
AndroidNDKのパスを通すところまでやっておく。
…そこまで色々あった気もしますが、思い出したら追記します。


・Android用のcocos2dxプロジェクトを作成する
create-android-project.shを実行する。
targetIDは7とかにしました。お好みで。
プロジェクト名は、XCodeで作成するプロジェクトと同一になるように意識。

出来上がったプロジェクト名のフォルダを、一旦退避。
(この後XCodeで同じ階層に、同じ名前のフォルダを作成することになるため)
フォルダ名をリネームで良いでしょう。(プロジェクト名_androidとか)


・XCodeでcocos2dxプロジェクトを作成する
ProductNameとAndroid用のプロジェクト名が同じになるように作成。
作成先のディレクトリはcocos2dxの直下にしました。
(どこでもよいと思います)

これで、Android用とXCode用のプロジェクトが揃いました。


・XCodeの方にAndroidのプロジェクトをマージ
 XCodeで作成したプロジェクト内の以下の場所に、
 Androidで作成したプロジェクトに入っているproj.androidをまるっとコピーします。
例)プロジェクト名がSample01の場合
Sample01/Sample01/Classes
Sample01/Sample01/...
Sample01/Sample01/proj.android
こんな感じの構成になるように。

・build_native.shを編集
テキストエディタなどで、proj.android/build_native.shを編集します。
40行目付近
COCOS2DX_ROOT="$DIR/../../../"
(Android用プロジェクトと比べて、cocos2dxまでの階層が1つ深くなったので)

私はプロジェクトをcocos2dx直下に作ったので
上記のように「/..」を1つ増やす感じでしたが
任意の場所に作られている場合は、
ここは絶対パスで指定する必要がありますね。


・build_native.shを実行
実行します。
たくさんのファイルがコンパイルされていくはずです。

そういえば、先ほど作成したAndroid用のプロジェクトフォルダはもう使用しません。
proj.androidフォルダは、XCode用のプロジェクトの方へ統合してしまいましたので。
リネームしていたフォルダは、削除しました。

・XCodeで実行してみる
問題なく実行できることを確認します。

・Eclipseで実行してみる
プロジェクトをインポートします。
インポート後は、エラーが発生するかもしれません。
私の場合、libcocos2dxの参照先がおかしいため、エラーとなりました。
プロジェクトのプロパティを開き、Android-Libraryで
cocos2dxライブラリへの参照先を修正します。

(追記)
Android-Libraryでcocos2dxのライブラリを参照する格好にしていましたが、
cocos2d-2.0-x-2.0.4/cocos2dx/platform/android/java/src
の中身を、
Android用プロジェクト/proj.android/src
の中にコピーする方が良さそうです。
(理由…Androidのバックキーを制御したい時、
Cocos2dxGLSurfaceViewを編集する必要がありそうだから…)
 
これでEclipse上から、Android端末で実行できるはずです。



以上です。

0 件のコメント:

コメントを投稿