[cocos2d-x]环境配置、交叉编译及安卓项目的生成
1.配置cocos2d-x & Android开发环境
我想如果有意搞这个东东的,应该不用什么图文并茂了吧,稍微看一下就明白了。
1.1.安装VS2008
这是微软开发的集成开发环境,也是cocos2d-x的C++主战场,VS2008是VS系列最稳定的版本。
下载地址:http://pan.baidu.com/share/link?shareid=532811852&uk=637953331
激活方式就不提供了,自己度娘。MSDN按需安装。
1.2.安装Visual Assist_X(可选)
这款神奇是VS2008必装的插件,智能提示,辅助功能,是VS的好×××。
下载地址:http://pan.baidu.com/share/link?shareid=564415924&uk=637953331
激活方式你懂的。
1.3.安装Cygwin
Cygwin是windows平台上运行Linux的模拟环境,对于从Linux到Windows的应用程序移植,或者是使用GNU工具集在Windows上进行嵌入式开发都非常有用。可以通过在线安装,也可以离线进行安装,我们这里主要用来进行cocos2d-x跨平台(安卓)的交叉编译。
Cygwin下载地址:http://pan.baidu.com/share/link?shareid=561636163&uk=637953331
Cygwin离线包下载地址:http://pan.baidu.com/share/link?shareid=561923288&uk=637953331
采用在线安装你要保证网速够给力,不然几个小时是必须的,这里提供的离线包包含了develop的相关工具。
1.4.安装Java
Java是Android支持的编程语言,也是安卓环境搭建的基础。主要麻烦的地方是环境变量的设置。
下载地址:http://www.java.com/zh_CN/
环境变量配置:http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html
1.5.安装带Android ADT的Eclipse
Eclipse集成开发环境是用以android app,当然也可以进行C++的开发,只要你安装相应的组件即可。安装Android ADT就可以进行Android app的开发,这里选择直接使用谷歌提供的打包好Android ADT的Eclipse,就免去了ADT的安装等操作。
下载地址:http://developer.android.com/sdk/index.html
安装完成后,通过SDK管理器下载相应SDK版本就可以了。
1.6.安装Android NDK
Android NDK是Android系统对外提供的基于C++接口的软件工具包,它集成了交叉编译器,只要修改相应的编译脚本文件就可以创建出so文件,且自动将其与Android app进行打包。
下载地址:http://developer.android.com/tools/sdk/ndk/index.html
使用方式:进入Eclipse→Windows→Preferences→Android→NDK→选择所在的路径。
需注意的是,有些较高NDK版本在和cocos2d-x配合编译的时候会出现问题。所以各个工具之间应选择可兼容的。
1.7.安装cocos2d-x
cocos2d-x引擎这里就不再介绍了,国内官网是http://cocos2d.cocoachina.com/。
下载地址:http://cocos2d.cocoachina.com/download
安装方式:
(1)点击build-win32.bat,用来编译cocos2d-x文件。
(2)点击install-templates-msvc.bat,用来安装VS模版(向导)。
(3)create-android-project.bat,用来创建Andorid工程,在使用之前要先对其内容进行配置(Cygwin路径,Android SDK路径,Android NDK路径),如下;
[cpp] view plaincopy- :: modify it to work under your environment
- set _CYGBIN=e:\cygwin\bin
- if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & pause & exit 4
- :: modify it to work under your environment
- set _ANDROIDTOOLS=e:\android\android-sdk\tools
- if not exist "%_ANDROIDTOOLS%" echo Couldn't find android sdk tools at "%_ANDROIDTOOLS%" & pause & exit 5
- :: modify it to work under your environment
- set _NDKROOT=e:\android\android-ndk-r8
- if not exist "%_NDKROOT%" echo Couldn't find ndk at "%_NDKROOT%" & pause & exit 6
较高版本的cocos2d-x已经不再支持VS2008,而是转向支持比较高的VS2010和VS2012了,所以选择的时候请注意。
2.创建HelloCocos2dx的Win32项目
(1)点击cocos2d-win32.vc2008.sln,进入cocos2d-x解决方案。
(2)在解决方案上新建项目,创建名为HelloCocos2dx的项目。
(3)执行调试。可以看到:
3.创建HelloCocos2dx的Android项目
(1)关闭VS项目,将cocos2d-x中刚才创建的HelloCocos2dx的VS项目剪切到别的地方。
(2)点击已配置好的create-android-project.bat,输入包名和项目名称,项目名称也为HelloCocos2dx。
前一步剪切的原因是如果存在同样的目录,Android项目会创建失败。然后选择Android目标SDK。等待创建成功。
(3)将步骤1的VS项目拷贝回来,覆盖Android的HelloCocos2dx目录中的Classes和Resoure文件夹。
(4)这时HelloCocos2dx目录下Android项目和Win32项目就在一起了,这样就不用每次编译都进行Classes和Resoure的拷贝了。
4.Cygwin的交叉编译
(1)进入Andoird目录→jni目录→修改Android.mk,把所有的cpp都包含进去。
[cpp] view plaincopy- LOCAL_SRC_FILES := helloworld/main.cpp \
- ../../Classes/AppDelegate.cpp \
- ../../Classes/HelloWorldScene.cpp
(3)等待编译生成so文件,so文件在proj.android\obj\local\armeabi目录下,如下即成功了。
[cpp] view plaincopy- x/platform/third_party/android/prebuilt/libtiff/libs/armeabi/
- StaticLibrary : libcocos2d.a
- Compile++ thumb : cocosdenshion_static <= SimpleAudioEngine.cpp
- Compile++ thumb : cocosdenshion_static <= SimpleAudioEngineJni.cpp
- StaticLibrary : libcocosdenshion.a
- SharedLibrary : libgame.so
- Install : libgame.so => libs/armeabi/libgame.so
- make: 离开目录"/cygdrive/d/Cocos2d-x/cocos2d-2.0-rc2-x-2.0.1/HelloCocos2dx/proj.android"
5.导入eclipse,生成apk
(1)进入Eclipse,选择Import,导入HelloCocos2dx的安卓项目。
(2)生成apk文件。
(3)由于AVD不支持openGL2.0,所以在模拟器上没办法显示,只能在真机调试。
6.本文开发环境版本
(1)VS2008Pro
(2)VA_X
(3)Cygwin
(4)Jdk1.7.0_11
(5)Eclipse Juno
(6)Andorid SDK2.2
(7)Adroid-ndk-r7
(8)cocos2d-2.0-rc2-x-2.0.1