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