热门IT资讯网

[cocos2d-x]环境配置、交叉编译及安卓项目的生成

发表于:2024-11-28 作者:热门IT资讯网编辑
编辑最后更新 2024年11月28日,1.配置cocos2d-x & Android开发环境我想如果有意搞这个东东的,应该不用什么图文并茂了吧,稍微看一下就明白了。1.1.安装VS2008这是微软开发的集成开发环境,也是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
  1. :: modify it to work under your environment
  2. set _CYGBIN=e:\cygwin\bin
  3. if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & pause & exit 4
  4. :: modify it to work under your environment
  5. set _ANDROIDTOOLS=e:\android\android-sdk\tools
  6. if not exist "%_ANDROIDTOOLS%" echo Couldn't find android sdk tools at "%_ANDROIDTOOLS%" & pause & exit 5
  7. :: modify it to work under your environment
  8. set _NDKROOT=e:\android\android-ndk-r8
  9. 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
  1. LOCAL_SRC_FILES := helloworld/main.cpp \
  2. ../../Classes/AppDelegate.cpp \
  3. ../../Classes/HelloWorldScene.cpp
(2)打开Cygwin Terminal,将Android目录下的build_native.sh拖进去,执行。

(3)等待编译生成so文件,so文件在proj.android\obj\local\armeabi目录下,如下即成功了

[cpp] view plaincopy
  1. x/platform/third_party/android/prebuilt/libtiff/libs/armeabi/
  2. StaticLibrary : libcocos2d.a
  3. Compile++ thumb : cocosdenshion_static <= SimpleAudioEngine.cpp
  4. Compile++ thumb : cocosdenshion_static <= SimpleAudioEngineJni.cpp
  5. StaticLibrary : libcocosdenshion.a
  6. SharedLibrary : libgame.so
  7. Install : libgame.so => libs/armeabi/libgame.so
  8. 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

0