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

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

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

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

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

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

接下来选中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的安装文件夹

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

5. 编写jni\Android.mk文件

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

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

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

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

再增加下面两个地方

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

这样就能够在项目中

#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游戏打包成Android应用程序的更多相关文章

  1. cocos2d安装配置及打包成Android

    vs+python+cocos2d python下载:点这里 这里需要下载Python 2.X版本.曾经以为要下载3.x版本 后来装上发现cocos2d-x提供的python运行报错,所以卸载以后重新 ...

  2. cordova+vue 项目打包成Android(apk)应用

    现在使用vue开发的项目越来越多,使用vue开发的移动端打包就成了最大的问题.现在前端打包方案有好多种,但是综合来说,我比较喜欢用cordova来进行Android和ios的打包,配置完成之后,每次只 ...

  3. 如何将html5程序打包成Android应用

    问题分析: html5网站主要由html+css+js的形式组成,需要使用浏览器进行展现. Android需要使用Java语言来开发,对于前端工程师来说,无疑是增加了很大的难度. 随后出现了很多打包工 ...

  4. JAVA程序打包成exe小程序的过程

    编程软件:myeclipse2014 打包exe软件:exe4j 1:在myeclipse2014新建java项目编写程序 2:打包成jar,分两种情况(有无外部依赖包) 无外部依赖包:点击项目--- ...

  5. electron打包成桌面应用程序的详细介绍

    1.前提条件 a. 安装了node b.安装了electron c.你知道自己写的东西(js,css,html等等)放在那个文件夹(假设这个文件夹命名为 app,下面会用到)中 2.安装electro ...

  6. vs2019将小游戏打包成msi踩的坑(个人)

    1.VS无Setup projecrt? vs2015之前是自带打包msi功能的,vs2017之后需要自己去下载插件: 下载地址:https://marketplace.visualstudio.co ...

  7. Qt ------ window下工程项目打包成一个exe程序

    最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 首先,先介绍自己使用的环境.我使用的QT版本是 ...

  8. 4-QT的程序打包发布(将QT5的工程项目打包成一个exe程序)

    https://blog.csdn.net/windsnow1/article/details/78004265 最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台win ...

  9. QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)

    最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 首先,先介绍自己使用的环境.我使用的QT版本是 ...

随机推荐

  1. [暑假集训--数论]poj1061 青蛙的约会

    Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事 ...

  2. html5 的 webScoket 和 C# 建立Socket连接

    最近使用的web项目中,需要服务器直接触发前端显示效果. 所以研究了一下websocket: 名词解释: WebSocketWebSocket协议是一种双向通信协议,它建立在TCP之上,同http一样 ...

  3. Maven 的基本用法

    一.Maven 的安装 二.Maven的常用构建命令 1.mvn -v 查看maven版本 2.mvn compile 编译 3.mvn test 测试 4.mvn package 打包 5.Mvn  ...

  4. pat 甲级 1010. Radix (25)

    1010. Radix (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given a pair of ...

  5. 《Java性能权威指南》笔记----Java性能调优工具

    OS 1.CPU 用户态时间(us):cpu执行应用代码所占时间的百分比. 内核态时间(sy):cpu执行内核代码所占时间的百分比,系统态时间与应用相关. 空闲时间(id):cpu空闲时间百分比.空闲 ...

  6. HDU 4328 Cut the cake

    Cut the cake Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  7. DataSet导出到Excel文件

    public static void ExportToExcel(DataSet source, string fileName) { System.IO.StreamWriter excelDoc ...

  8. 百度云中有关IE浏览器的源码

    <!--[if lt IE 9]>   <div class="topbar">百度云控制台不支持当前所使用的浏览器,推荐安装 <a href=&qu ...

  9. C++调用Matlab引擎 图像读写与处理 (知识+代码篇)

    准备知识 之 Matlab Engine 执行命令 /* Execute matlab statement */ int engEvalString(Engine* ep, const char* s ...

  10. ZOJ 3593.One Person Game-扩展欧几里得(exgcd)

    智障了,智障了,水一水博客. 本来是个水题,但是for循环遍历那里写挫了... One Person Game Time Limit: 2 Seconds      Memory Limit: 655 ...