作者:何卫

转载请注明,原文链接:http://www.cnblogs.com/hewei2012/p/3366969.html

其他平台移植:http://cocos2d.cocoachina.com/resource

软件准备

1.游戏引擎下载

下载地址,我使用的版本是cocos2d-2.1rc0-x-2.1.2

2.Andriod NDK下载

下载地址,下载完,解压即可,不要有中文路径,我这里用的是android-ndk-r9,工具的作用将c/c++开发的功能转化成Andriod可执行的so文件

3.针对Windows的Cygwin工具

需要1.7以上的版本,用于模拟Linux的命令行功能

Cygwin下载地址:http://pan.baidu.com/share/link?shareid=561636163&uk=637953331

Cygwin离线包下载地址:http://pan.baidu.com/share/link?shareid=561923288&uk=637953331

4.Andriod ADT工具

下载地址,Andriod开发工具eclipse以及Andriod SDK,用于生成Andriod 的apk文件

具体步骤

1.创建一个cocos2dx项目

基于cocos2dx游戏引擎,新建一个Helloworld工程,过程这里就不说了,在编译cocos2dx引擎时,第一次可能报一些错误,多编译几次就好了,记得点击install-templates-msvc.bat,在vs中自动创建向导功能

2.cocos2dx引擎中创建andriod工程的批处理文件修改

修改文件cocos2dx目录中的create-android-project.bat文件

1) cygwin目录找到set _CYGBIN= 在等号后面填入本机cygwin/bin目录,如:c:\cygwin\bin

2) <cygwin的目录>找到set _ANDROIDTOOLS= 在等号后面填入本机Android/tools目录,如:e:\work_cocos2d_x\andriod\sdk\tools

3)AndroidNDK目录找到set _NDKROOT= 在等号后面填入本机NDK目录,如:e:\work_cocos2d_x\android-ndk-r9

保存关闭。

3.Andriod.mk文件的修改

进入cocos2d-x目录中的cocos2dx目录,找到Android.mk文件,使用UE等编辑工具得开进行编辑,编辑此文件的目的为使用cocos2d支持NDKr9版本。

在文件的最末尾处找到LOCAL_CFLAGS :=   -Wno-psabi -DUSE_FILE32API,将其修改为LOCAL_CFLAGS :=   -Wno-psabi -DUSE_FILE32API -DGL_GLEXT_PROTOTYPES=1,保存关闭。

4.配置环境变量

NDK_ROOT=e:\work_cocos2d_x\android-ndk-r9

5.用批处理创建Andriod工程

运行cocos2d-x下的create-android-profect.bat文件,

首先输入项目生成目录,至少是双层目录,如:com.MyGame。

回车后会要求输入工程名,最好和目录名一致,如:MyGame。

回车后会要求选择AndroidSDK的版本号,一般选择2.1以上版本,相应id是1

回车后会在cocos2d-x目录中生成一个工程目录,工程目录中含有android、Classes、Resource三个子目录。

6.拷贝代码以及修改Andriod.mk文件

将准备好的代码文件拷贝到工程下的Classes目录;资源文件拷贝到工程下的Resource目录。打开Classes目录找到Android.mk,使用编辑工具打开,在LOCAL_SRC_FILES :=

填入要编译的cpp文件,保存后关闭。如:

LOCAL_SRC_FILES := AppDelegate.cpp \

GameOverScene.cpp \

Joystick.cpp \

TerribleGameScene.cpp

7.对于Andriod NDK r9版本的特殊处理

在批处理新建的Andriod工程中的jni目录下的Application.mk文件,最后需加上一行

APP_CPPFLAGS += -Wno-error=format-security

8.打开cygwin,生成so文件

1.输入工程路径下的Android文件夹的完整路径,如:cd e:\work_cocos2d_x\cocos2d-2.1rc0-x-2.1.2\helloworld_andriod\proj.android。然后运行build_native.sh文件,具体输入为:./build_native.sh

2.直接将build_native.sh文件拖入cygwin也行,更简便

9.打包apk文件

需要eclipse工具,选择Andriod Project from Existing Code新建Andriod项目,项目会存在错误,还需要两步操作

1.将cocos2d-2.1rc0-x-2.1.2\cocos2dx\platform\android\java\src\org\cocos2dx的lib文件夹拷贝至andriod工程中的org\cocos2dx目录中,右键eclipse中org.cocos2dx,选择refresh即可

2.有textEditor的方式打开AndroidManifest.xml文件,将android:icon="@drawable/icon">改成android:icon="@drawable/ic_launcher">

OK,大功告成,可以生成apk了,可以休息一下了~

完整cocos2d-x编译Andriod应用过程的更多相关文章

  1. C++, Java和C#的编译、链接过程解析

    总是感觉java是解释性语言,转载下一篇感觉写的容易理解的文章 转自 http://www.cnblogs.com/rush/p/3155665.html 1.1.1 摘要 我们知道计算机不能直接理解 ...

  2. GCC编译和链接过程

    GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器.它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分.GCC原本作为GNU操作 ...

  3. 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 百篇博客分析OpenHarmony源码 | v54.01

    百篇博客系列篇.本篇为: v54.xx 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 51.c.h.o 下图是一个可执行文件编译,链接的过程. 本篇将通过一个完整的小工程来阐述E ...

  4. android的编译和运行过程深入分析

    android的编译和运行过程深入分析 作者: 字体:[增加 减小] 类型:转载 首先来看一下使用Java语言编写的Android应用程序从源码到安装包的整个过程,此过程对了解android的编译和运 ...

  5. 找出 Xcode 编译C/C++过程文件及生成文件

    在使用 Xcode 编写C/C++时,会发现在项目的目录位置是没有编译过程的那些 .o .exe 文件,只有一个 C/C++ 源代码 .c 文件.如下图(在Mac OS的finder中右键窗口标题名称 ...

  6. C#编译和运行过程图例

    一张图,描述C#编译和运行过程,比较容易记忆理解

  7. C++ 编译,执行过程 具体解释。

    要更深入了解C++, 必需要知道一个程序从開始到结束都干了些什么, 怎么干的. 所以我从C++编译到执行过程,解析下程序是怎么跑的. 首先,初略的说一下之前C++的编译过程.C++编译过程包含预编译- ...

  8. gcc 编译的四大过程

    gcc 编译的四大过程(预处理-编译-汇编-链接 ) 我们来编译一个hello world 程序. #include <stdio.h> int main(int argc,const c ...

  9. Linux | GCC如何实现代码编译&&汇编&&链接过程

      正文: 每次我们程序员所写的 代码 是给程序员看的呢?还是给电脑看的?其实我们所写的代码只是我们程序员之间交流的一样特殊语言,电脑是看不懂的.那么我们如何实现人机交流呢?这就不得不请出我们我们今天 ...

随机推荐

  1. MyEclipse 2015 Stable 1.0下载安装破解日志

    前言 这2天下载了许多myeclipse版本,基本上是14/15版本的,各种破解均告以失败,这次下载了贴吧一个吧友提供的版本,现已破解.破解结果现不好说--目前已装SVN,根据经验,只有等待一定时间验 ...

  2. Spring实现AOP的4种方式(转)

    转自:http://blog.csdn.net/udbnny/article/details/5870076 Spring实现AOP的4种方式 先了解AOP的相关术语:1.通知(Advice):通知定 ...

  3. Unity3D研究院之打开Activity与调用JAVA代码传递参数

    原地址:http://www.xuanyusong.com/archives/667    Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发 ...

  4. 使用tornado让你的请求异步非阻塞

    http://www.dongwm.com/archives/shi-yong-tornadorang-ni-de-qing-qiu-yi-bu-fei-zu-sai/?utm_source=tuic ...

  5. poj 3735 Training little cats(矩阵快速幂,模版更权威,这题数据很坑)

    题目 矩阵快速幂,这里的模版就是计算A^n的,A为矩阵. 之前的矩阵快速幂貌似还是个更通用一些. 下面的题目解释来自 我只想做一个努力的人 @@@请注意 ,单位矩阵最初构造 行和列都要是(猫咪数+1) ...

  6. java基础知识回顾之---java String final类构造方法

    /** * String 构造方法学习 *     String(byte[ ] bytes):通过byte数组构造字符串对象. *     String(byte[] bytes, int offs ...

  7. 空格的URL编码

    Q: 为什么我看的教材一会说是“+” 一会说是“%20” A: urlencode(" ") '返回+encodeURI(" ") '返回%20是有区别的

  8. POJ2251Dungeon Master

    http://poj.org/problem?id=2251 题意 : 就是迷宫升级版,从以前的一个矩阵也就是一层,变为现在的L层," . "是可以走,但是“#”不可以走,从S走到 ...

  9. GDB笔记

    GDB是在Linux命令行下对C/C++的程序进行调试常用的一个命令,现将平时记录在本子上的笔记整理如下: 一.断点 断点类型有breakpoints, watchpoints, catchpoint ...

  10. 一起学Maven

    转载自:http://blog.csdn.net/songdeitao/article/details/18452459 一. 初识Maven 开场白 在现在的项目开发过程中,越来越重视项目的管理,而 ...