[cocos2d-x 学习] Windows下环境配置&交叉编译到android平台

前言:

每一个新东西,当然会从配置开发环境开始,cocos2d-x环境配置不麻烦,记录Win下android,vs2010 + cocos2d-x的开发环境配置。我写的简短,尽量写有用东西,让人看的舒服,快速。

准备的东西

1、vs2010,cygwin
2、cocos2d-x开发包,现在最新版本是 v2.0.3
3、Android SDK(假设你已经搭配好SDK开发环境),NDK(android-ndk-r8b我的版本)

配置cocos2d-x

先看看下载下来的cocos2d-x的目录情况,因为再win下我们需要用到得是: install-templates-msvc.bat, create-android-project.bat


双击install-templates-msvc.bat运行脚本,安装vs2010的插件(如果你vs版本低与2010也没事,cocos2d-x自动识别)
完毕,用文本软件打开create-android-project.bat,配置如下3个地方:

_CYGBIN : 配置你cygwin安装的bin目录(安装自己选择的地方)
_ANDROIDITOOL: 配置AndroidSDK目录Tool目录
_NDKROOT: 配置NDK解压后的目录
【注】 我都放在D:\AndroidIDE\.. 中,可以自己配置

配置环境变量

环境变量我们需要2个:ANDROID_NDK_ROOT, COCOS2DX_ROOT,变量的名字就是这样,路径根据自己放置文件的路径配置, 最好放在系统变量中,这样多用户都可以共享。
例如:

运行cocos2d-x demo

打开*.sln解决方案(我的是vs2010),然后编译一下工程,点debug运行都行的,就能看到很多例子,可以先看看,enjoy it。

 

NDK交叉编译

一、进入到原来的目录,双击create-android-project.bat,运行脚本文件,脚本需要你填写的信息有(需要之前配置好环境,点这里
1、package path(java 工程的包名)
2、project name(工程名字)
3、android targets(对应的android版本,建议选择低版本,因为都是向下兼容)
-----> package path

------->project name

------->拉到最后面,填入版本号对应的id,如上面id:1对应 “android 2.1”版本


打开cocos2d-x更目录,可以发现一个HelloWorld目录如下:

classes文件是存放你要编译的头文件和cpp文件,proj.android 就是 android 工程,而Resource就存放你的资源文件,如声音文件和图片资源等

二、编译android project
打开cygwin,定位到刚刚HelloWorld目录中proj.android,运行 build_native.sh,shell命令,输入 “./build_native.sh”,或者直接把 build_native.sh 文件拖动到cygwin中回车,等待编译(需要点时间),出现如下信息后,就可以导入到eclipse了(默认安装的cygwin是没有make命令的,需要安装一下,或者在安装的时候勾选make命令)
  1. Prebuilt       : curl.a <= /cygdrive/d/AndroidIDE/cocos2d-2.0-x-2.0.3/HelloWorld/proj.android/../../cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/armeabi/ 
  2. StaticLibrary  : libextension.a 
  3. SharedLibrary  : libgame.so 
  4. Install        : libgame.so => libs/armeabi/libgame.so 
  5. make: 离开目录“/cygdrive/d/AndroidIDE/cocos2d-2.0-x-2.0.3/HelloWorld/proj.android” 
    Prebuilt       : curl.a <= /cygdrive/d/AndroidIDE/cocos2d-2.0-x-2.0.3/HelloWorld/proj.android/../../cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/armeabi/
    StaticLibrary  : libextension.a
    SharedLibrary  : libgame.so
    Install        : libgame.so => libs/armeabi/libgame.so
    make: 离开目录“/cygdrive/d/AndroidIDE/cocos2d-2.0-x-2.0.3/HelloWorld/proj.android”

二、导入到eclipse
在eclipse新建android project,选择create project from existing source,然后选择你之前创建好的HelloWorld工程中的 proj.andriod,编译出apk(可以直接run as android application)跑一下模拟器。说到这里应该会出现几个问题:
1、工程导入编译的时候eclipse会报错,Cocos2dxActivity,org.cocos2dx.lib.Cocos2dxActivity 也找不到
解决方法:复制 ***\cocos2dx\platform\android\java\src\ (***为cocos2d-x更目录) 到你android项目中的src文件夹中,这样就又有一个麻烦问题,是不是每次创建都要复制呢,答案当然是否定的,来看一劳永逸的方法,定位 (cocos2d-x根目录)\template\android\,用文本文件打开 copy_files.sh,找到 copy_src_and_jni() 函数,添加入下代码
  1. cp -rf $COCOSJAVALIB_ROOT/src $APP_DIR/proj.android 
cp -rf $COCOSJAVALIB_ROOT/src $APP_DIR/proj.android

搞定,以后都不用在麻烦,让程序自动帮我们处理 :)

2、搞定以上,启动模拟器却跑不起HelloWorld程序,出现的错误信息如下:
我换了几乎所有的版本SDK,都这样,应该是支持SDK对openGL支持的限制吧,换下真机调试就ok,文章完毕。

 

大概需要以下步骤:

1、创建出 android project,配置信息写好

2、复制android project 中的 proj.android 到要编译的 win32 中

假设工程为 PractiseCocos2d,那么打开 PractiseCocos2d,复制到里面。

3、修改 proj.android/jni/Android.mk 文件

面找到 LOCAl_SRC_FILES,再后面加上你要编译的文件,上面工程中加入了 PractiseCococs2d.cpp, 把它加入到里面(../../代表上上层目录,就是classes同级目录),然后打开 cygwin 编译就可以了,cygwin 编译可以参考这里第二大点第二小点。(helloworldScene.cpp 可以选择性编译,具体看情况),如果多个文件,多加几个文件就可以了

编译完成就可以在导入到eclipse跑起来了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值