Xcodeで作成をしていたアプリを、初めてEclipseで実行した時に色々とエラーが出ました。 今回は、この解決方法を紹介したいと思います。 もし、同じよなエラーで困っている方がいましたら、是非参考にしてみて下さい。
[cocos2dx_static/platform/android/CCCommon.o] が出る
最初にビルドすると、[cocos2dx_static/platform/android/CCCommon.o]感じのCCCommon.oに関するエラーが3つ出ました。 これの解決策は下記サイトを参考にして解決しました。
Eclipseのプロジェクトから、[jni]->[Application.mk]を修正します。
コードは以下のように変更します。 [c]
APP_STL := gnustl_static APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1
//これを付け足します。 APP_CFLAGS += -Wno-error=format-security
[/c]
Android.mk
プロジェクトに新たに追加したクラスがあれば、それを「Android.mk」というところに登録をしないとEclipseが認識をしてくれません。
cocos2dxのHelloWorldのCCSceneだけ、実機で実行ができて、それ以外のクラスではエラーが出ました。 これはいちいち登録するのがメンドクサイので、下記サイトを参考に「Andoroid.mk」を修正しました。
Cocos2d-xで新しく作ったクラスを毎回Android.mkに追加せずに済ます - しすぜろ
Eclipseのプロジェクトから、[jni]->[Android.mk]を修正します。
コードは以下のように変更しました。 [c]
//以前のモノ
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorld.cpp
//これをこのように書き換えます
CPP_FILES := $(shell find $(LOCAL_PATH)/../../Classes -name *.cpp)
LOCAL_SRC_FILES := hellocpp/main.cpp LOCAL_SRC_FILES += $(CPP_FILES:$(LOCAL_PATH)/%=%)
[/c]
auto型
cocos2dxでは、auto型がEclipseでは認識できないのでエラーになります。 これに関しては、正式なクラスに置き換えたらエラーは消えました。
ヘッダーファイルに未設定のメソッドがある場合
ヘッダーファイルに未設定のメソッドを定義して、cppファイルで中身を設定していない場合、エラーになります。 これは、ヘッダーファイルのメソッドを削除すればエラーが消えました。
最後に
上記のエラーを解決したら、無事これまでXcodeで作成してきたアプリをAndoridで試すことができました。 ただ、画面の配置がおかしい、また、ボタンを押しても反応しないなど、色々と修正をしないといけない感じです。 このあたりは、Eclipseでデバックをしながら、治していく必要があります。 今度はデバックです!!