将ios项目转换为android
Posted
技术标签:
【中文标题】将ios项目转换为android【英文标题】:Converting ios project into android 【发布时间】:2014-05-02 06:19:57 【问题描述】:我在 ios 中使用 xcode 中的 cocos2dx(c++) 开发了一个游戏。现在我正在尝试在 Eclipse 中为 android 运行该游戏。这样我就可以从 proj.android 文件夹在终端中运行 ./build_native.sh 文件。在构建结束时,它显示以下错误。
/Users/srikanthreddy/Desktop/AndroidDev/android-ndk-r9d/toolchains/arm-linux- androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux- androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/AppDelegate.o: in function AppDelegate::applicationDidFinishLaunching():jni/../../Classes/AppDelegate.cpp:57: error: undefined reference to 'SplashScreen::scene()'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1
make: Leaving directory `/Users/srikanthreddy/Desktop/AndroidDev/cocos2d-x-2.2.2/projects/New/proj.android'
我在 appdelegate.h 中声明了 splashscreen.h 并且游戏以启动画面开始。游戏在ios中运行完美,请帮我解决。
【问题讨论】:
【参考方案1】:在这里可以找到类似的答案: Cocos2d-x: How to port a Cocos2d-x project developed with XCode to Android (via Eclipse)?
您在 Classes 目录中有任何 .cpp 或 .c 文件吗?编译器需要知道的是这些文件的位置;仅仅包含 .h 等效项是不够的。
在 proj.android/jni/Android.mk 中,观察以下条目(在您选择的文本编辑器中打开,例如 textedit 或 textwrangler):
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
现在,查看 Classes/ 目录,看看有哪些文件。对我来说,我有我的 Molemio.cpp,还有一个名为 Load/ 的文件夹中的 specialLoad.cpp。
看到这些文件后,我添加到 Android.mk,使 LOCAL_SRC_FILES 部分现在看起来像:
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp \
../../Classes/Molemio.cpp \
../../Classes/Load/specialLoad.cpp
请注意,我在 HelloWorldScene.cpp 的末尾添加了一个反斜杠。这允许您在不结束列表的情况下添加换行符。
【讨论】:
以上是关于将ios项目转换为android的主要内容,如果未能解决你的问题,请参考以下文章