将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的主要内容,如果未能解决你的问题,请参考以下文章

Unix 激荡 50 年:驱动 AndroidiOS 的操作系统是如何从失败开始的?

将 iOS 项目转换为自动布局

将 iOS 项目转换为 ARC 时出现 Lipo 错误

将ios项目转换为android

如何将基于视图的 iOS 项目转换为通用版本?

web项目一键打包,可同时生成Androidios端