cocos2d-xのBox2Dプロジェクトを
Android用にビルドするときにはまったメモ。
以下、太線部分を追加します。
・HelloWorldScene.hを書き換える
#include "Box2D/Box2D.h"
・Android.mkを書き換える
15行目付近
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static box2d_static
19行目付近
$(call import-module,CocosDenshion/android) \
$(call import-module,cocos2dx) \
$(call import-module,extensions) \
$(call import-module,external/Box2D)
以上です!
2013年1月31日木曜日
cocos2d-x Eclipseで編集&実行
XCode環境でcppファイルを編集して、Androidで動作確認する時には
build_native.shを叩いてビルドして実行。
・・のような手法が主流?のようですが
Eclipseでcppファイルを編集&ビルド&実行する方法も調べてみました。
http://kayosystem.blogspot.jp/2012/11/macandroidcocos2d-x_14.html
こちらを参考にしました。
EclipseでC/C++環境を作るところ等々は割愛します。
自分がハマったところだけメモ。
・NDK_ROOTが見つからない場合
CDTのBuild Consoleに
「NDK_ROOTがないよ」みたいなことでビルドが出来ない場合、
proj.android/build_native.shに
NDK_ROOTを宣言すると良さそうです。
私は、.bash_profileにNDK_ROOTを設定していましたが
(・・設定しているはずですが(自信無し))
上記のようなエラーでビルドが通りませんでした。
ついでに、environment.plistも設定してみたのですが
それでもうまく行きませんでした・・。
設定の仕方が悪かっただけでしょうか。謎。
build_native.shの32行目付近に
(最初にNDK_ROOTという変数が出てくる前に)
NDK_ROOT="ndkのパス"
を追加したところ、ビルドが通るようになりました。
・icon.pngでエラー
無事にビルドが通り、いざRunしようとすると
プロジェクトにエラーがあるぞと言われました。
drawable-hdpi/icon.pngに×マークが出ます。
なぜ・・。
最初は、アイコンサイズが80x80になっているから??
と思い、Resources/Icon-72.pngを72x72にリサイズしてみましたが
(というか名前に72とついてるのに何故80なのか)
エラーは相変わらず。
何故! と思い、エラーが出ている状態で続けて
Run As - Android Application を押してみた所
今度はエラーが消え、実行することができました・・。
今の所、2回に1回、実行できる感じです。
不便・・。
どこにもこのような情報が無いと思われるので
私の所だけで起きているのかもしれません。
解決できるといいな・・。
それ以外は、無事にEclipseでcppを編集&実行できました。
build_native.shを叩いてビルドして実行。
・・のような手法が主流?のようですが
Eclipseでcppファイルを編集&ビルド&実行する方法も調べてみました。
http://kayosystem.blogspot.jp/2012/11/macandroidcocos2d-x_14.html
こちらを参考にしました。
EclipseでC/C++環境を作るところ等々は割愛します。
自分がハマったところだけメモ。
・NDK_ROOTが見つからない場合
CDTのBuild Consoleに
「NDK_ROOTがないよ」みたいなことでビルドが出来ない場合、
proj.android/build_native.shに
NDK_ROOTを宣言すると良さそうです。
私は、.bash_profileにNDK_ROOTを設定していましたが
(・・設定しているはずですが(自信無し))
上記のようなエラーでビルドが通りませんでした。
ついでに、environment.plistも設定してみたのですが
それでもうまく行きませんでした・・。
設定の仕方が悪かっただけでしょうか。謎。
build_native.shの32行目付近に
(最初にNDK_ROOTという変数が出てくる前に)
NDK_ROOT="ndkのパス"
を追加したところ、ビルドが通るようになりました。
・icon.pngでエラー
無事にビルドが通り、いざRunしようとすると
プロジェクトにエラーがあるぞと言われました。
drawable-hdpi/icon.pngに×マークが出ます。
なぜ・・。
最初は、アイコンサイズが80x80になっているから??
と思い、Resources/Icon-72.pngを72x72にリサイズしてみましたが
(というか名前に72とついてるのに何故80なのか)
エラーは相変わらず。
何故! と思い、エラーが出ている状態で続けて
Run As - Android Application を押してみた所
今度はエラーが消え、実行することができました・・。
今の所、2回に1回、実行できる感じです。
不便・・。
どこにもこのような情報が無いと思われるので
私の所だけで起きているのかもしれません。
解決できるといいな・・。
それ以外は、無事にEclipseでcppを編集&実行できました。
ラベル:
cocos2d-x
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端末で実行できるはずです。
以上です。
動作確認した環境
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端末で実行できるはずです。
以上です。
ラベル:
cocos2d-x
登録:
投稿 (Atom)