cocos2dx Android 环境搭建 以及 ndk调试

最近在学习cocos2dx,真的很强大,使我们更专注于游戏趣味,免去了繁琐的底层框架代码。

cocos2dx的最强大之处当然在于跨平台。跨平台首选当然是Android,好记性不如烂笔头,记下本文分享给大家。

这里认为我们已经有Android开发环境了,在此基础上配置cocos2dx,没有基础Android开发环境的可以自己谷歌一下。

1、下载完cocos2dx2.2.2 之后 还需要安装Python和ndk(http://developer.android.com/tools/sdk/ndk/index.html),使用官方的脚本建立新的项目。在cocos2d-x-2.2.2的目录中进入到\tools\project-creator目录下,按住shift右击,选择在当前位置打开命令窗口。

运行 python create_project.py -project HelloWorld -package com.cocos2d-x.org -language cpp

其中HelloWorld为工程名称,com.cocos2d-x.org为我为android版本取的包标识名,cpp为开发语言。

之后在cocos2d-x-2.2.2\projects目录下可以看到新建的项目。

好开心,所有平台的解决方案都出来了。

PS:所有新建的Cpp以及.h默认都要放到Classes文件夹中。

2、导入生成的Android项目

再导入Cocos2dx的类库

在项目中引用libcocos2dx

 

3、我们先修改项目jni中的Android.mk
在最后边加上红色的2句,并且在$(call import-module,cocos2dx)之前:
$(call import-add-path, E:/android/cocos2d-x-2.2.2)
$(call import-add-path, E:/android/cocos2d-x-2.2.2/cocos2dx/platform/third_party/android/prebuilt)
$(call import-module,cocos2dx)

PS:文件夹路径要填写自己cocos2dx的路径,

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

改为

FILE_LIST := hellocpp/main.cpp
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)
LOCAL_SRC_FILES := hellocpp/main.cpp
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)

这样可以免去手动输入引用CPP的麻烦。

 

再修改jni中的Application.mk
在最后面添加环境变量(你的cocos2d-x-2.2.2的位置):
NDK_MODULE_PATH:=E:/android/cocos2d-x-2.2.2;E:/android/cocos2d-x-2.2.2/cocos2dx/platform/third_party/android/prebuilt

 

4、将步骤1中的Resources文件夹中的所有内容拷贝到项目的assets中。

 

5、在eclipse的window-》preferences菜单下配置NDK的安装路径为你放置NDK的路径如D:\Android\android-ndk-r9c

 

6、右键项目-》properties-》C/C++ Build 修改Build command为 例如:D:\Android\android-ndk-r9c\ndk-build.cmd

 

7、右键项目-》properties-》C/C++ Build-》Environment中新增环境变量NDK_MODULE_PATH,值为步骤3中的值。

 

8、编译运行。

 

调试其实很简单,但是如果没有设置,打开CPP会报许多错,但是编译是通过的。

1、首先确定引用的文件夹路径是否正确

2、在能够编译通过的情况下,打开其中任意一个CPP应该会报一大堆错误,不用怕,不用理会,因为编译没有任何问题。

3、右键项目-》properties-》C/C++ General-》Code Analysis-》

4、报什么错,我们就去掉检测。

5、再看看Cpp应该不会报错了,右键项目-》debug as-》 Android Native Application,加上断点调试吧!

 

参考:http://www.eoeandroid.com/thread-321983-1-1.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。