Cocos2d-x:如何将使用XCode开发的Cocos2d-x项目移植到Android(通过Eclipse)?

Reg*_*_AG 7 eclipse xcode android cocos2d-iphone cocos2d-x

我开发了一个带有XCode的Cocos2d-X应用程序,当我在iOS设备上从XCode启动时,它可以很好地工作.

现在,我想将它移植到Android.我的理解是我必须找到一种方法将我的"XCode项目"导入Eclipse,以便能够编译它并在Android设备上启动它.

我正在尝试按照本教程将此项目转换为混合iOS/Android项目:http://gameit.ro/2012/01/creating-an-iphone-and-android-cocos2d-x-hybrid-project-updated /#评论-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
Run Code Online (Sandbox Code Playgroud)

我是否必须将一些文件导入Eclispe?我是否需要修改一些android.mk文件?别的什么?

有人可以帮我或写一个关于这个主题的教程吗?谢谢 !!

cla*_*woo 12

从它的外观来看,您需要将自定义创建的文件添加到LOCAL_SRC_FILES部分中的Classes/Android.mk,如下所示:

LOCAL_SRC_FILES := AppDelegate.cpp \
                   HelloWorldScene.cpp \
                   IntroMenu.cpp \
                   GameLayer.cpp \
                   ScoreManager.cpp
Run Code Online (Sandbox Code Playgroud)

您需要这样做才能让android构建文件知道需要包含在构建过​​程中的新文件.

对于添加到项目中的每个新源文件,您需要对afaik执行此操作.