cocos2d-x学习笔记(一)——安装篇

来源:互联网 发布:免费试用源码 编辑:程序博客网 时间:2024/05/10 11:23

小结:cocos2d-x安装环境的配置与版本有很大关系,cocos2d-x1.0系列版本的程序可以在Android2.2以上版本的虚拟机上运行,cocos2d-x2.0以上版本不可以在Android虚拟机上运行(我测试的结果),当然,cocos2d-x的任何版本都可以在真机上运行的。在安装cocos2d-x环境的时候,最大的问题就是cocs2d-x版本和Andorid虚拟机版本不兼容的问题。建议cocs2d-x引擎使用1.0系列版本,使用Android虚拟机4以后版本,这样可以在虚拟机上运行。若都使用最新版本,则只能在Android真机上测试。

配置Cocos2d-x环境前,先配置NDK开发环境

需要先完成Android开发环境,包括

JDK

Eclipse

Android SDK and ADT

一、Android NDK安装与配置

下载Android NDK。下载地址:http://developer.android.com/tools/sdk/ndk/index.html

下载后解压缩到你的工作目录,例如:D:\Java\android-ndk-r8c,结果如下图:


注意:samples下面包含几个实例开发演示项目,第一次接触NDK开发,建议先从示例开始。docs内是技术文档,英语能力强的可以研究研究。

二、安装Cygwin与使用NDK编译

由于NDK开发大都涉及到C/C++GCC环境下编译、运行,所以在Windows环境下,需要用Cygwin模拟Linux编译环境。

下载:

Cygwin的下载地址:http://www.cygwin.com/


点击右上角的setup.exe即可下载。

安装:

第一步:运行setup.exe程序,直接点击Next进入下一步。

第二步:选择安装方式。第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。

第三步:选择安装目录。比如D:\Java\Cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。

第四步:设置本地包暂存路径。暂存目录默认是放到setup.exe的同级目录下,建议放到指定的文件夹,如D:\Cygwin_install_file。安装完成后把这个文件夹打包备份,以后再配置时不用重新下载。

第五步:设置网络连接方式。这个目前河蟹没爬过来,选第一个即可。

第六步:选择下载站点地址。据说国内163站点的速度不错,我也是用的这个。

第七步:等待加载安装项载入,选择安装项。点击Devel-Default,使之变成Devel-Install,展开后可以看到其下的子项被选中了(网上多数教程都说选中某12个包,找起来太坑爹了,直接全下载了吧,全选多了150M左右)。此界面其他设置都不用动。


第八步:等待下载完成。下载完成时间决定于你选择的安装包数量及网络连接速度,安装我安装的版本,约983M,下载完成后会自动安装到上文设置的安装目录,安装也要时间的,总时间较长,去吃个饭没啥问题。

提醒:第四步的备份建议,尽量去做。如果有备份,第二步中选择离线安装。

验证:

运行安装目录下的Cygwin.bat,第一次运行时,它会自动创建用户信息,用户信息存放在.\Cygwin\home中。

在运行Cygwin.bat打开的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前Cygwin的版本和运行状态,如果statusok的话,则cygwin运行正常。

分别输入:make v和,gcc v命令如果检测成功,会有makegcc相关版本信息打印出来。


设置NDK路径:

windows的系统环境变量中添加NDK的路径。使用/cygdrive/d/Java/android-ndk-r8这种Linux风格路径,如果使用Windows下的D:\Java\android-ndk-r8Cygwin在编译时会发出警告。

 

运行Cygwin命令行,可以直接使用此环境变量,当然也可以手动的cd到该目录:

 

使用NDK编译程序:

现在我们用安装好的NDK来编译一个NDK提供的sample程序hello-jni(我的目录位于:D:\Java\android-ndk-r8\samples\hello-jni)。

第一步:运行Cygwin,配置环境变量后可输入cd $ndk/samples/hello-jni/,未配置则输入命令cd /cygdrive/d/java/android-ndk-r8/samples/hello-jni,进入到hello-jni工程目录。

 

第二步:编译。输入命令$ndk/ndk-build命令即可编译。ndk-build是调用ndk的编译程序。

第三步:到”…/hello-jni/libs/armeabi目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦! 


导入NDKhello-jni示例到Eclipse中:

第一步:在Eclipse中新建一个Android工程HelloJni。在Create Android Project时勾选Create project from existing sourceLocation中填D:\Java\android-ndk-r8\samples\hello-jni” (注意:在选择API level时需要选择1.5或更高的版本)。

第二步:直接以Android Aplication运行。这里要注意,你之前在使用NDK编译程序时要把这个hello-jni编译过并产生了.so文件,此处才能运行起来。

 

三、在Eclipse中集成C/C++开发环境CDT

CDT的安装可以使我们在一个工程中,同时开发基于C/C++Native代码和基于Java语言的壳,之后的配置还可以使得一次编译两部分代码。

下载地址:http://www.eclipse.org/cdt/downloads.php

说明:Eclipse C/C++ IDE Indigo SR2:是带CDTEclipse开发环境。

p2 software repository:在线安装的地址。(似乎被河蟹爬了)

cdt-master-8.0.2.zip:这个是CDT的离线安装包。(推荐使用这个,保留离线包,复用)


离线安装:

Eclipse -> Help -> Install New Software,点击addName:随意,建议使用好记的CDT_版本Location:点击Archive,定位到下载的cdt-master-8.0.2.zip文件。

错误:

如果Location的下面出现Duplicate location错误,请到Window ->   preferences -> Install/Update -> Avaliable Software Site中找到该条,remove之。

验证:

安装完成后,在Eclispe中新建一个项目,如果出现了C/C++项目,则表明CDT插件安装成功了。

 

四、安装Sequoyah插件

Sequoyah插件用于设置Android工程对Native开发的支持。

官方网址:http://www.eclipse.org/sequoyah/downloads/

在线安装:

         官网提供了用于在线安装的Update Site地址以及安装包的下载地址。貌似安装包才1M多,在线安装也没被河蟹爬过,直接在线安装了。勾选全部列出的可安装项并完成安装。

Locationhttp://download.eclipse.org/sequoyah/updates/2.0/

 

注意:

在安装界面不要勾选Group items by category复选框,默认是勾选的,出现了列表为空(There are no categorized items)的情况。

 

配置:

安装完Sequoyah插件后,为Android配置NDK路径。

window > preferences ->Android -> 本机开发中添加NDK的路径。

验证:

右键之前建立的HelloJni项目,在Android Tools选项中包含Add Native Support…”选项即成功。

五、JNI编译环境配置

仍旧以之前建立的HelloJni为例,到目前为止,如果我们修改/HelloJni/jni/hello-jni.c文件,动态链接库libhello-jni.so文件却不会被重新编译生成。这是因为我们没有给JNI项目添加它需要的编译配置和依赖库。现在我们来配置它。

第一步:转换工程。点击文件 -> 新建 -> 其他(快捷键:Ctrl+N)。选择C/C++下的Convert to a C/C++ ProjectAdds C/C++ Nature。进入下一步

 

第二步:选中你刚才建的HelloJni工程,下面左边选Makefile project右边选Cygwin GCC。确定后提示的透视图不清楚是什么,点击即可。

 

第三步:在HelloJni工程上右键,选择属性。配置C/C++ BuildC/C++ General  ->  Paths and Symbols

C/C++ Build:点击C/C++ Build,在右边的Builder Settings中去掉默认勾选的Use default build command复选框。设置Build commandbash D:\Java\android-ndk-r8\ndk-build

C/C++ General ->  Paths and Symbols:在Includesadd新的GNU C依赖路径。此HelloJni工程需要D:\Java\android-ndk-r8\platforms\android-8\arch-arm\usr\include即可,以后根据不同项目选择不同的依赖库。 

 

验证:

/HelloJni/jni/hello-jni.c中的字符串Hello from JNI !如改为Hello JNI from Baron!,运行后在模拟器上输出的字符串改变即说明配置成功。 

cocos2d-x安装环境

在cocs2d-x官网上下载最新该新版本的游戏引擎,然后解压。进入cocs2d-x目录,用文本编辑器打开create-android-project.bat

找到以下几个定义:

:: modify it to work under your environment     

set _CYGBIN=D:\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-sdk-windows\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-ndk-r8-windows\android-ndk-r8

if not exist "%_NDKROOT%" echo Couldn't find ndk at "%_NDKROOT%" & pause & exit 6

_CYGBIN=设置为cycgwin\bin安装的的绝对路径。

_ANDROIDTOOLS设置为android sdk tools绝对路径

_NDKROOT设置为android ndk的绝对路径

修改完毕,保存后

双击create-android-project.bat开始工程创建向导

首先是输入包名(建议按照android的命名规则),如com.android.test;

然后输入工程名称(注意不要输入已有的文件夹的名字,如果同名,会被覆盖掉的),如testandroid

然后选择target id;

其会列出机器上安装的所有版本的sdk,我们选择6,即2.3.2sdk.


进入g:\cocos2d-x目录发现多了一个名为testandroid的目录,里面包含三个目录

其中Classes:是存放默认工程的C++文件

proj.android androideclipse工程项目

Resources 资源文件

下来我们开始编译刚创建的testandroid项目

打开cygwin,进入到testandroid/proj.android目录,输入 ./build_native.sh 开始编译如下图:

最后编译成功截图如下:


编译成功之后,会直接在testandroid\proj.android\libs\armeabi这个目录底下生成so文件(libgame.so

编译完毕,下来就是在eclipse里面编译成apk文件,并安装运行一把。

1、将刚编译完的工程导入到eclipse中。

以管理员身份打开eclipse(因为之前都是以管理员身份获取的权限的,否则会出现编译时权限有问题的),选择FILE->New->Android Project,然后选择如下:

点击next,选择Build Target,如下:

运行该工程,右键该工程,选择Run as ->android application(cocos2d-2.0-rc0a-x-2.0起,支持了open gl es2.0,默认的工程创建是要求运行于open gl es2.0上的,即目前模拟器还未支持,所以必须用真机去调试)

如下:


原创粉丝点击