将Cocos2d-x游戏打包成Android应用程序

1. 打开Eclipse(已经装好CDT、ADT和NDK),导入cocos2d-x的Android项目。

2. 导入后java的源码会出现编译错误,打开cocos2d-x引擎的根文件夹\cocos2dx\platform\android\java\src,将src下的org文件拷贝到项目的src文件夹下,java文件编译通过

将Cocos2d-x游戏打包成Android应用程序_第1张图片


3. 配置环境变量和资源路径。右击项目名,按下Alt+Enter键,进入Resource中的Linked Resources中,点击new,出现下面对话框

将Cocos2d-x游戏打包成Android应用程序_第2张图片


Name输入COCOS2DX,Location输入cocos2d-x引擎的根文件夹,输入完点击OK后再次点击new,

Name输入PROJECT_LOC,Location输入cocos2d-x引擎的根文件夹\projects\你的项目\proj.android,然后点击OK,配置完资源路径的绑定


将Cocos2d-x游戏打包成Android应用程序_第3张图片

选中C/C++ Build,看到Build command: 把这个文本框中的内容改成你本机的ndk的安装文件夹\ndk-build.cmd(该文件夹不能有空格)

将Cocos2d-x游戏打包成Android应用程序_第4张图片


接下来选中C/C++ Build下的Environment,Add三个变量


三个变量的Name和Value各自是

COCOS2DX cocos2d-x引擎的根文件夹

NDK_MODULE_PATH cocos2d-x引擎的根文件夹;cocos2d-x引擎的根文件夹\cocos2dx\platform\third_party\android\prebuilt

NDK_ROOT ndk的安装文件夹


将Cocos2d-x游戏打包成Android应用程序_第5张图片

4. 把Resources下的资源文件拷贝到cocos2d-x引擎的根文件夹\projects\你的项目\proj.android\assets下

5. 编写jni\Android.mk文件


将Cocos2d-x游戏打包成Android应用程序_第6张图片

在LOCAL_SRC_FILES中增加你的项目的cpp文件名称

将Cocos2d-x游戏打包成Android应用程序_第7张图片


假设项目文件一多的话势必编写起来麻烦,并且须要更改时也非常easy编写错误,在下一篇文章中,用py脚本来避免这样的情况

编写完LOCAL_SRC_FILES后若果有引入第三方库的话还需改动下面两处(这里以iconv库为例)

下载iconv库,并将其拷贝到cocos2d-x根文件夹下


再增加下面两个地方


将Cocos2d-x游戏打包成Android应用程序_第8张图片

这里为什么要这样子写,能够从iconv根文件夹\android.mk下查找

将Cocos2d-x游戏打包成Android应用程序_第9张图片


这样就能够在项目中

#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
#include "../iconv/iconv.h"
#pragma comment(lib,"libiconv.lib") 
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "../../../libiconv/include/iconv.h"
#endif

在使用iconv时在android平台还要把const char**强转成char** (Android 真蛋疼),当中pin是const char**类型,

	#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
	if(-1 == iconv(iconvH,pin,&strLength,&outbuf,&outLength)){
	#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
	if(-1 == iconv(iconvH,(char **)pin,&strLength,&outbuf,&outLength)){
	#endif


6. 编译项目,假设看到控制台输出



说明编译成功。


你可能感兴趣的:(cocos2d-x)