2012-02-08 9 views
7

私は、iOSデバイス上のXCodeから起動すると完全に動作するXCodeを備えたCocos2d-Xアプリケーションを開発しました。Cocos2d-x:XCodeで開発されたCocos2d-xプロジェクトをAndroidに移植する方法(Eclipse経由)

今、Androidに移植したいと思います。私が理解していることは、コンパイルしてAndroidデバイスで起動できるようにするために、Eclipseに「Xcodeプロジェクト」をインポートする方法を見つけなければならないということです。

私は現在、このチュートリアル以下のハイブリッドのiOS/Androidのプロジェクトにこのプロジェクトを変換しようとしています。それにも関わらずhttp://gameit.ro/2012/01/creating-an-iphone-and-android-cocos2d-x-hybrid-project-updated/#comment-640

、私は私のCPPクラス(cocos2d-xのC++のクラス)のいずれかは、Eclipseに表示されて表示されていません私は、このハイブリッドプロジェクトを開き、build_native.shでそれをコンパイルしようとしたとき、私は次のエラーを取得するとき:

Compile++ thumb : game_logic <= AppDelegate.cpp 
jni/../../Classes/AppDelegate.cpp:14:23: error: IntroMenu.h: No such file or directory 
jni/../../Classes/AppDelegate.cpp:15:23: error: GameLayer.h: No such file or directory 
jni/../../Classes/AppDelegate.cpp:16:26: error: ScoreManager.h: No such file or directory 
jni/../../Classes/AppDelegate.cpp: In member function 'virtual bool AppDelegate::applicationDidFinishLaunching()': 
jni/../../Classes/AppDelegate.cpp:99: error: invalid use of incomplete type 'struct ScoreManager' 
jni/../../Classes/AppDelegate.h:17: error: forward declaration of 'struct ScoreManager' 
jni/../../Classes/AppDelegate.cpp:101: error: invalid use of incomplete type 'struct ScoreManager' 
jni/../../Classes/AppDelegate.h:17: error: forward declaration of 'struct ScoreManager' 
jni/../../Classes/AppDelegate.cpp:118: error: 'GameLayer' has not been declared 
jni/../../Classes/AppDelegate.cpp:120: error: 'IntroMenu' has not been declared 
make: *** [obj/local/armeabi/objs-debug/game_logic/AppDelegate.o] Error 1 
macbook-de-regis-andre-2:android regisandre$ ./build_native.sh 

私はEclispeにいくつかのファイルをインポートする必要がありますか? android.mkファイルを変更する必要がありますか?他に何か?

誰でもこのトピックに関するチュートリアルを私に教えることができますか?ありがとう!!

あなたは、このようなLOCAL_SRC_FILESセクションにクラス/ Android.mkにカスタム作成されたファイルを追加する必要があり、それのルックスから

答えて

12

LOCAL_SRC_FILES := AppDelegate.cpp \ 
        HelloWorldScene.cpp \ 
        IntroMenu.cpp \ 
        GameLayer.cpp \ 
        ScoreManager.cpp 

あなたはAndroidのビルドファイルを聞かせするために、これを実行する必要がありますビルドプロセスに含める必要がある新しいファイルについて知っています。

プロジェクトに追加する新しいソースファイルごとに、afaikを実行する必要があります。

+2

OMG、どのようにcocos2d-xチュートリアルには含まれていませんか? – OMGPOP

0

@clawooは正しいですが、プロジェクトに追加するすべてのファイルを含める必要はありません。 )

新しいソースファイルがプロジェクトに追加されるたびにファイルを更新する必要がないように、次のスクリプトを使用できます(http://www.cocos2d-x.org/boards/6/topics/5321

cppfilestemp1 := $(shell find $(LOCAL_PATH)/../../../Classes/ -type d) 
012:

LOCAL_SRC_FILES := main.cpp \ 
../../../Classes/AppDelegate.cpp \ 
../../../Classes/HelloWorldScene.cpp \ 

では、次の操作を行うことができます

dirs := $(shell find $(LOCAL_PATH) -type d) 

cppfilestemp1 := $(shell find $(LOCAL_PATH) -type d) 
cppfilestemp2 := $(shell find $(cppfilestemp1) -name *.cpp) 
cppfilestemp3 := $(sort $(cppfilestemp2)) 
cppfiles := $(subst $(LOCAL_PATH)/,,$(cppfilestemp3)) 

LOCAL_SRC_FILES := \ 
      $(cppfiles) 

は、あなたがどこかにファイルがある場合、たとえばことを、覚えておいてくださいそれは働いていた私の場合は

LOCAL_SRC_FILES := main.cpp 
LOCAL_SRC_FILES += $(cppfiles) 

ヒント:

あなたが不満コンパイラに問題がある場合:「ターゲット/.../を作るためにはありませんルール」を、私は/ OBJ /ローカル/ armeabi/OBJS - デバッグのEclipseの内容で、削除することをお勧めgame_sharedフォルダ。次に、build_native.shを再実行し、objフォルダの内容を更新(F5)します。

関連する問題