前言:几天痛苦的搞来搞去,各种报错,各种办法,最终终于搞定了。
cocos2d-x-2.2是比较稳定的版本,cocos2d-x各个版本都有些不一样,所以无法保证都一样!以下是我在XP系统下所做的总结
我假设:在看下面的内容前,你已经安装好了Eclipse环境下Android应该开发的必要工具了(如果没有,自己去google官网上下载工具包,目前google都已经将所有的工具都打包好了,你只需下载下来解压即可使用,当然jdk需要自己安装),官网下载地址:http://developer.android.com/tools/sdk/ndk/index.html
首先需要下载google提供的android-ndk,去官网下载,最新的版本android-ndk-r9,下载这个最新的就可以了。和以前的版本相比 新的NDK版本不需要安装Linux虚拟机就可以编译,也就是你不必再安装Cygwin工具了。 下载下来后解压就可以了。
官网上下载的cocos2d-x-2.2.zip解压就可以了。cocos2d-x-2.2官网就建议Python工具来创建一个工程,目前Python27版本下载下来安装就可以用了(注意:Python高的版本有问题,记得用Python27版本),cocos2d-x-2.2\tools\project-creator这个目录create_project.py这个文件里面有具体创建工程的指令,你可以再这个目录里面创建NewProject.bat这个批处理文件文件,这样就可以方便创建工程了,创建成功时就会cocos2d-x-2.2目录里面生成一个project目录其工程就在这里了。
接下来,Eclipse 里面导入cocos2d-x-2.2的工程的步骤:
1:
Eclipse:Import 导入 选择 Existing Android Code Into Workspace 来导入 cocos2d-x-2.2里面存在的工程。
G:\cocos2d-x_DEVELOP\cocos2d-x-2.2\samples\Cpp\SimpleGame\proj.android
注意:这里不能选择 Copy projects into workplace,否则各种问题。
2:
在这个文件里添加如下代码(红色字):cocos2d-x-2.2\samples\Cpp\SimpleGame\proj.android\jni\Android.mk
$(call import-add-path,G:/cocos2d-x_DEVELOP/cocos2d-x-2.2)
$(call import-add-path,G:/cocos2d-x_DEVELOP/cocos2d-x-2.2/cocos2dx/platform/third_party/android/prebuilt)
include $(BUILD_SHARED_LIBRARY)
在这个文件里添加如下代码(红色字):cocos2d-x-2.2\samples\Cpp\SimpleGame\proj.android\jni\Application.mk
NDK_MODULE_PATH:=G:/cocos2d-x_DEVELOP/cocos2d-x-2.2/cocos2dx/platform/third_party/android/prebuilt
3:
Eclipse->Window->Preferences->Android->NDK 添加NDK Location(如下所示):
G:\cocos2d-x_DEVELOP\android-ndk-r9c
4:
为Eclipse导入的cocos2d-x工程配置一个Builders:
Eclipse->Package Explorer->选择工程点击右健,选择Properties->选择Builders 点击右边的new,然后选择Program->OK 来创建一个新的Builders
安装如下流程图来配置(公司电脑加密无法截图,所以只能用手机拍照):
注意:我从Eclipse导入的工程名:My_first_example
首先打开:Properties(如下图)
然后选择左边的:Builders—》点击右边的new 这样来创建一个新的Builder(如下图):
选择:Program(如下图)
选择 main-> 随便给一个命名(我这里是:New_Builder)、
在Location选项里面填写上(NDK路径):G:\cocos2d-x_DEVELOP\android-ndk-r9c\ndk-build.cmd
在下面的Working Direction加上当前工程(选择Browse workplace来选择当前工程)
选择Environment->New 一个新的环境变量:
NDK_MODULE_PATH
G:\cocos2d-x_DEVELOP\cocos2d-x-2.2\cocos2dx\platform\third_party\android\prebuilt;G:\cocos2d-x_DEVELOP\cocos2d-x-2.2
设置刷新工程时候自动编译。选择Refresh->按照如下配置即可
Build Options也需要配置(如下)
最后,点击OK这样新的Builder就配置好了。
最后还需要配置一个,选择左边的:C/C++ Build 。配置好Build command信息(如下图)
G:\cocos2d-x_DEVELOP\android-ndk-r9c\ndk-build.cmd
这样就在Eclipse编译工程时候,就NDK能正常编译了。
通过上面4个步骤的配置,你的工程已经可以正常编译了,不过还无法成功运行,各种报错。所以还有两个步骤:
首先,将G:\cocos2d-x_DEVELOP\cocos2d-x-2.2\cocos2dx\platform\android\java\src\org这个里面的文件复制到你的android工程里面,
我这里就是把org文件夹一起复制到我工程的这个目录里My_first_example\proj.android\src。
这样之后,你的工程就能够完全在Eclipse编译了,而且可以运行。不过最终会报如下的错误:
03-10 07:05:47.931: D/cocos2d-x debug info(1116): Get data from file(CloseNormal.png) failed!
03-10 07:05:47.931: D/cocos2d-x debug info(1116): Get data from file(CloseSelected.png) failed!
03-10 07:05:48.223: D/cocos2d-x debug info(1116): Get data from file(HelloWorld.png) failed!
03-10 07:05:48.223: A/libc(1116): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 1129 (Thread-108)
由报错信息可以知道,有许多图片资源找不到。
最后一步,将cocos2d-x工程的资源(Resources里面的所有内容)全部复制到proj.android\assets目录里面,这样就可以了。