今天教大家怎么把2dx的win32项目交叉编译成android项目并最终编译成apk。我会讲的很详细。并注明我遇到的一些错误。我所用的cocos2d-x版本是2.1.4。
需要的所有软件:VS2010(或2008,2012等)、eclipse+ADT插件+androidSDK(这三个可以单独下载也可以直接到谷歌开发者页面下载整合包)、androidNDK、Cygwin
注:eclipse+ADT插件+androidSDK 如果是单独下载如何配置请看:这里
androidNDK直接下载下来解压。
如何安装Cygwin请看这里。安装过程有点长。。
好了,我们继续。首先用VS编译好项目。
(1)创建新空的android项目。
进入到cocos2d-x引擎文件夹下。找到create-android-project.bat这个东西。用它来创建新的空的android项目。但是首先要修改下它。用记事本或其他的打开它。
修改完这三处后,双击运行。
之后会弹出这个:
你需要在后面输入项目包名 比如 com.example.test 然后回车,接下来出现
接着输入项目名字 如:HelloWorld 然后回车。
然后出现这个,在id 处填上数字 如 填2 就带表项目最低支持andoroid 2.2版本。
好了,这时你会在cocos2d-x目录下看到刚刚建成的android空项目。
我建的是myTest
打开后会看到
说明:
Classes里存放win32你要编译的项目的cpp文件。
pro.android里存放的是android的项目文件
Resources里存放的资源文件
(2)编译文件
首先你要把win32的项目中你要编译的所有的.cpp和.h文件全部移到myTest\Classes目录中。
然后把资源图片音乐什么的都移动到myTest\Resources目录下。
然后还要修改一个地方:
进入到 myTest\proj.android\jni下,用记事本打开Android.mk。
修改如下:
保存。
好了,接下来打开cygwin编译文件。但在此之前先配置两个环境变量吧!
右键计算机-属性-高级管理-环境变量-添加系统变量
名:NDK_ROOT 值:D:\soft\android-ndk-r8e (你的ndk目录)
名:COCOS2DX_ROOT 值:E:\code\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2\cocos2dx (引擎目录)
来到你的cygwin目录下,打开Cygwin.bat
接着输入 cd E:\code\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2\myTest\proj.android 回车。也就是进入你的android项目的pro.android目录下。
接着输入 ./build_native.sh 这就启动了build_native.sh 这时就可以编译了。过程也比较慢。
----------------------------------------------------------
注:虽然之前已经配置了ndk的目录,但是我运行 输入./build_native.sh后报错提示我 未找到ndk! 我在网上找到了解决办法:
用记事本打开build_native.sh。修改如下
然后继续运行./build_native.sh吧。
----------------------------------------------------------
备注:第一次成功了。第二次在进行这一步时。出错了。
出现