目前我配置的环境需求如下:
JDK 1.6
XCodeVersion 4.6 (4H127)
Cocos2d-x 2.2.0
Android Developer
一,下载安装
要配置环境一次性下载准备要以下东西:
1,下载jdk,地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
2,下载ndk,地址:http://developer.android.com/tools/sdk/ndk/index.html
3,ADT + sdk ,地址:http://developer.android.com/sdk/index.html
4,下载最新的Cocos2dx,目前已经到了2.2版本了,地址:http://cocos2d-x.org/download官网改动挺大;
ps:2.1.5以上的版本编译工程创建都有一些差距;
5,下载xcode,我的是老版本4.6不用升级,破解了无证书的,没必要直接老版本更新,可以直接去网上下载安装包;
ps:破解地址也给一个吧http://blog.csdn.net/abcddtt/article/details/9074099对于没有证书或者真机调试新项目给别人看很有用的;
二,环境的配置安装
1,ios 的环境cocos2d-x2.2.0版本安装与升级
先安装好xcode,然后解压出cocos2d-x2.2的文件,从2.1.5以上后就没有模板的安装了,直接解压后用/Users/yangshengjie/cocos2dx.2.2/cocos2d-x-2.2/tools/project-creator目录下的create_project.py文件安装建工程
但是如果2.1.5之前的想升级cocos2dx2.2.0版本,进行如下操作:
(1)找以前旧版本的如cocos2d-x-2.1.4的install-templates-xcode.sh拷贝到2.2的目录下面
(2)再把/Users/yourmacname/cocos2dx.2.1.4/cocos2d-x-2.1.4/template/xcode4 整个文件夹复制到对应/cocos2dx.2.2.0/cocos2d-x-2.2.0/template/ 下面
(3)先获取mac的root权限,命令行执行 install-templates-xcode.sh -u-f ,看到installed就升级成功了,xocde新建工程看cocos2d.cpp就是2.2版本的了;
2,android 环境安装配置,jdk,ndk,eclipse 下载完之后整理以下目录,然后开始配置mac下的环境变量
整理后的目录放在users根目录下:
打开终端配置环境变量,输入以下命令:
vim ~/.bash_profile
按键i,进行插入编辑(如果输错d进行删除一行)
修改以下路径:
export PATH=$PATH:/Users/yourmacname/adtformac/sdk/tools
export PATH=$PATH:/Users/yourmacname/adtformac/sdk/platform-tools
export PATH=$PATH:/Users/yourmacname/android-ndk-r9b/
export ANDROID_NDK_ROOT=/Users/yourmacname/android-ndk-r9b/
export ANDROID_SDK_ROOT=/Users/yourmacname/adtformac/sdk
export NDK_ROOT=/Users/yourmacname/android-ndk-r9b/
复制进去
按esc,再命令输入命令:
:wq
3,创建一个新工程
终端打开路径/Users/yangshengjie/cocos2dx.2.2/cocos2d-x-2.2/tools/project-creator
用命令创建工程:
./create_project.py -project projectname -package com.xxx.xxxx -language cpp
替换自己的包名和工程名,回车如图示就算建立成功了
你现在可以通过xcode打开你新建的项目工程了,工程目录在:
/Users/yangshengjie/cocos2dx.2.2/cocos2d-x-2.2/projects/mytest
双击文件夹proj.ios/mytest.xcodeproj就可以打开工程,直接run就可以跑起来;
ios端配置就完成了,很简单;
另外推荐大家一个小工具go2shell(路径命令终端快捷的工具拖到Finder工具栏上面,一键就可以定位打开这个路径的终端),这玩意儿图标也很萌...
4,配置android eclipse的环境
打开eclipse,-> import目录/Users/yangshengjie/cocos2dx.2.2/cocos2d-x-2.2/cocos2dx/platform/android/java
加载libcocos2d工程,因为新工程需要把他作为lib引用
(1),adt->设置->General->Workspace->Link Resources->new 对话框里面name填COCOS2DX,路径选择:/Users/yourmacname/cocos2dx.2.2/cocos2d-x-2.2
如下图:
ok
(2),adt->设置->Android->SDK location 选择你的sdk路径/Users/yourmacname/adtformac/sdk
默认的sdk自带了一个4.4的rom,APIlevel = 19
(3),adt->设置->Android->C/C++ ->Build->Environment Add 一个ndk路径/Users/yourmacname/android-ndk-r9b
(4),import刚才新建的工程/Users/yourmacname/cocos2dx.2.2/cocos2d-x-2.2/projects/mytest/proj.android
ok,如果上面的步凑没什么问题,导入应该不会报错:
ok,到这步没有报错的话,应该可以直接跑起来了,可以插上android真机调试以下看看如何;
点击run->你的工程项目在eclipse Consle里面可以看到如下图:
我们已经成功通过ndk编译出.so文件,真机上就没问题了;
5,编写代码,进行跨平台交叉编译
以上我们已经成功完成了工程的创建以及ios,android平台都可以跑起来新建的项目了,事情还没完,我们新写了c++代码,怎么交叉编译呢?换句话说我们在win32,xcode,eclipse任何一个开发平台写了代码怎么同步到其他平台呢?
例:我在xcode写代码再同步到eclipse上去
我打开了我之前xcode创建的工程,里面编写了一个BaseSoundControl.cpp文件,显然这个类是用来控制声音的,具体代码:
#include "BaseSoundControl.h" #include SimpleAudioEngine.h" BaseSoundControl::BaseSoundControl(CCString* videourl,bool repetflag) { CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(videourl->getCString()); CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(videourl->getCString(),repetflag); }
用到了CocosDenshion,win32下面如果用到声音需要手动起添加,andriod新创建的工程也要去手动添加;
xcode ios 跑起来效果如下:
先把写的代码copy到对应工程里面,复制的时候注意对应目录关系如下图,Classes和Resources对应里面的所有东西(c++代码和图片,和音频文件)都copy过来;
然后F5刷新我们的android工程,就会看到mytest项目中classes文件夹同步上了我们写的c++代码;
先别着急直接run,会报错,因为在android建工程没有cocos2d-x里面专处理声音跨平台的CocosDenshion库,手动添加它;
工程名->右键->new->folder
Advanced ->link to~~~ ->Varivbels ->选择cocos2dx ->Extend->选择 CocosDendhion ok!如下图:
最后filsh就有了这个库了;
还没完事儿,点run还是会报错,还有最重要的一步,编写.mk文件!!!!
eclipse中直接在jni中打开Android.mk文件,做如下修改,以后写了一个cpp就的在这里配置一个;
ok,所有工作完成了,可以点run了!!
再次生成.so成功,标志着跨平台编译跑起来了!