cocos2dx windows环境搭建

2015年02月12日 11:09 0 点赞 0 评论 更新于 2025-11-21 16:17

安装工具

1. 配置JDK

JDK是Java开发的基础环境,Cocos2d-x在开发过程中会依赖Java相关工具。你可以从JDK下载地址下载JDK。

本人系统是Win7 64位版,但安装的是JDK7 Windows X86版,假设安装目录为 C:\Program Files (x86)\Java\jdk1.7.0_21 ,当然也可以安装到其他位置。

接下来设置环境变量:

  • JAVA_HOMEC:\Program Files (x86)\Java\jdk1.7.0_21
  • CLASSPATH.;%JAVA_HOME%\lib;
  • Path:增加 %JAVA_HOME%\bin;

本文假设你知道如何设置环境变量,如果不清楚,可以使用搜索引擎查找相关资料。设置完成后,打开命令提示符(CMD),输入 java -version 。若出现以下提示,则表明环境变量设置成功:

C:\Users\arlin>java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) Client VM (build 23.21-b01, mixed mode, sharing)

2. 下载Android SDK

Google为Android开发者提供了ADT(Android Developer Tools),其中包含了SDK和Eclipse。你可以从下载地址下载,可选择32位或64位版本,本文选择32位版,并将其解压到 d:\adt-bundle-windows-x86\ 目录,其目录结构如下:

--<adt-bundle-windows-x86>
--<eclipse>
--<sdk>
--SDK Manager.exe

3. 下载Android NDK

Android NDK用于在Android平台上进行C/C++开发。你可以从下载地址下载,同样有32位和64位版可选,本文选择32位版,并将其解压到ADT同一目录下,此时ADT的目录结构如下:

--<adt-bundle-windows-x86>
--<eclipse>
--<sdk>
--<android-ndk-r8e>
--SDK Manager.exe

4. 下载ANT

ANT是用于自动构建Android程序的工具。你可以从下载地址下载,本文选择 apache-ant-1.9.3-bin.zip ,并将其解压到ADT目录下,此时ADT的目录结构如下:

--<adt-bundle-windows-x86>
--<eclipse>
--<sdk>
--<android-ndk-r8e>
--<apache-ant-1.9.3>
--SDK Manager.exe

5. 下载Python

从Cocos2d-x 3.0版本开始,在不同平台下创建和构建工程统一使用Python脚本,因此在Windows下需要安装Python环境。你可以从下载地址下载Python 2.7.3版本,因为最新版本在使用 setup.py 时可能会出现语法错误,而2.7.3版本经测试没有问题。

假设Python安装在 d:\Python27\ ,由于2.7.3版本不会自动将路径添加到 Path 环境变量中,所以需要手动设置。将该路径添加到 Path 环境变量后,在CMD中输入 python ,若出现以下字样,则说明环境变量设置正确:

C:\Users\arlin>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Cocos2d-x下载与配置

1. 下载Cocos2d-x

目前最新版本是3.0RC,你可以从下载地址下载,下载完成后解压到指定位置,本文解压到 f:\cocos2dx\cocos2d-x-3.0rc0\

2. 设置环境变量

Cocos2d-x的命令行工具 cc 需要以下几个环境变量,用于后续的新建工程、构建工程等操作:

  • COCOS_CONSOLE_ROOT:Cocos控制台路径,用于新建、构建、发行工程。
  • NDK_ROOT:NDK根目录。
  • ANDROID_SDK_ROOT:SDK根目录。
  • ANT_ROOT:ANT根目录。

这些环境变量可以通过Cocos2d-x根目录下的 setup.py 脚本进行配置。启动CMD,运行 setup.py

F:\cocos2dx\cocos2d-x-3.0rc0>setup.py

此时脚本会要求你提供NDK、SDK、ANT的路径,根据之前的安装路径输入即可,整个命令过程如下:

Setting up cocos2d-x...
-> Adding COCOS2D_CONSOLE_ROOT environment variable... OK
-> Added: COCOS_CONSOLE_ROOT = F:\cocos2dx\cocos2d-x-3.0rc0\tools/cocos2d-console/bin
-> Looking for NDK_ROOT envrironment variable... NOT FOUND
Please enter its path (or press Enter to skip): d:\adt-bundle-windows-x86\android-ndk-r8e
ADDED
-- Added: NDK_ROOT = d:\adt-bundle-windows-x86\android-ndk-r8e
-> Looking for ANDROID_SDK_ROOT envrironment variable... NOT FOUND
Please enter its path (or press Enter to skip): D:\adt-bundle-windows-x86\sdk
ADDED
-> Added: ANDROID_SDK_ROOT = D:\adt-bundle-windows-x86\sdk
-> Looking for ANT_ROOT envrironment variable... NOT FOUND
Please enter its path (or press Enter to skip): d:\adt-bundle-windows-x86\apache-ant-1.9.3\bin
ADDED
-> Added: ANT_ROOT = d:\adt-bundle-windows-x86\apache-ant-1.9.3\bin
Set up successfull:
COCOS_CONSOLE_ROOT was added into registry
NDK_ROOT was added into registry
ANDROID_SDK_ROOT was added into registry
ANT_ROOT was added into registry
Please restart the terminal or restart computer to make added system variables take effect

命令最后提示我们重启终端或者重启系统,以使这些环境变量生效。一般情况下,关闭CMD和资源浏览器即可。如果后续遇到环境变量找不到的错误,可以直接重启系统。

要测试环境变量是否生效,重新打开CMD,输入以下命令查看:

F:\cocos2dx\cocos2d-x-3.0rc0>set NDK_ROOT
NDK_ROOT=d:\adt-bundle-windows-x86\android-ndk-r8e

F:\cocos2dx\cocos2d-x-3.0rc0>set ANT_ROOT
ANT_ROOT=d:\adt-bundle-windows-x86\apache-ant-1.9.3\bin

F:\cocos2dx\cocos2d-x-3.0rc0>set ANDROID_SDK_ROOT
ANDROID_SDK_ROOT=D:\adt-bundle-windows-x86\sdk

F:\cocos2dx\cocos2d-x-3.0rc0>set COCOS_CONSOLE_ROOT
COCOS_CONSOLE_ROOT=F:\cocos2dx\cocos2d-x-3.0rc0\tools/cocos2d-console/bin

新建和构建工程

1. 新建工程

我们使用 tools\cocos2d-console 工具来新建工程,该工具提供了以下几个功能:

  • new:创建一个新的工程。
  • compile:编译当前工程,生成二进制文件,个人认为写为 build 更合适。
  • deploy:发布程序到一个平台。
  • run:编译、发布并运行程序。

现在我们只需要使用 new 功能,在CMD中输入 cocos new --help 查看 new 命令的参数:

usage: cocos new [-h] [-p PACKAGE_NAME] -l {cpp,lua,js} [-d DIRECTORY] [-t TEMPLATE_NAME] [--no-native] [PROJECT_NAME]

创建一个新工程

必要参数:
PROJECT_NAME        工程名

可选参数:
-h, --help          显示帮助信息
-p PACKAGE_NAME, --package PACKAGE_NAME 设置包名,如com.colin.mbgame
-l {cpp,lua,js}, --language {cpp,lua,js} 使用的主要语言,可以是:[cpp | lua | js]
-d DIRECTORY, --directory DIRECTORY 工程所在的目录
-t TEMPLATE_NAME, --template TEMPLATE_NAME 要创建的工程模板名

lua/js 工程参数:
--no-native         No native support.

在CMD中输入以下命令创建一个新工程:

F:\cocos2dx>cocos new mygame1 -p com.colin.mbgame -l cpp -d f:\cocos2dx\mbgame

输出如下:

F:\cocos2dx>python F:\cocos2dx\cocos2d-x-3.0rc0\tools\cocos2d-console\bin\/cocos.py new mygame1 -p com.colin.mbgame -l cpp -d f:\cocos2dx\mbgame
Runing command: new
> Copy template into f:\cocos2dx\mbgame\mygame1
> Copying cocos2d-x files...
> Rename project name from 'HelloCpp' to 'mygame1'
> Replace the project name from 'HelloCpp' to 'mygame1'
> Replace the project package name from 'org.cocos2dx.hellocpp' to 'com.colin.mbgame'

这表明我们已经成功创建一个工程,工程目录位于 f:\cocos2dx\mbgame\ ,目录结构如下:

--<mygame1>
--<Classes>
--<cocos2d>
--<proj.android>
--<proj.ios_mac>
--<proj.linux>
--<proj.win32>
--<Resources>
--.cocos-project.json
--CMakeLists.txt

可以看到,各种平台下的工程都已创建出来,同时Cocos2d-x整个框架也被拷贝过来,其利弊因人而异。

2. 构建Android工程

同样使用 cocos2d-console 工具,这里使用 compile 命令。在CMD中输入 f:\cocos2dx\mbgame\mygame1>cocos compile --help 查看帮助信息:

usage: cocos compile [-h] [-s SRC_DIR] [-q] [-p PLATFORM] [-m MODE] [-j JOBS] [--ap ANDROID_PLATFORM] [--source-map]

把当前工程编译为二进制

可选参数:
-h, --help          显示帮助信息
-s SRC_DIR, --src SRC_DIR 工程根目录,比如上面应该是f:\cocos2dx\mbgame\mygame1,如果不设,就为当前目录(cmd定位到的那个目录)
-q, --quiet         less output
-p PLATFORM, --platform PLATFORM 选择一个平台 android|ios|mac|web|win32|linux
-m MODE, --mode MODE 编译模式 debug|release, 默认为debug.
-j JOBS, --jobs JOBS 并行编译,如果你有4核,可以设为4。

Android Options:
--ap ANDROID_PLATFORM 指定SDK版本,没试过,不敢枉下定论,保留英文:parameter for android-update.Without the parameter,the script just build dynamic library for project. Valid android-platform are:[10|11|12|13|14|15|16|17|18|19]

Web Options:
--source-map        Enable source-map

在CMD中输入以下命令编译当前目录下的Android工程,同时设置4个编译任务,让4核机器满负荷运行:

F:\cocos2dx\mbgame\mygame1>cocos compile -p android -j 4

如果一切正常,应该可以看到编译开始,最后如果看到以下信息,说明编译成功:

BUILD SUCCESSFUL
Total time: 7 seconds
Move apk to F:\cocos2dx\mbgame\mygame1\bin\debug\android
build succeeded.

我们到 f:\cocos2dx\mbgame\mygame1\proj.android\bin\ 目录下,可以看到 mygame1-debug.apk ,说明构建完成。

我将其安装到手机上运行,感觉启动速度好像快了很多,不知是否是心理作用。

在Eclipse下运行程序

还记得我们下载的ADT里面包含Eclipse吗?现在我们将工程导入到Eclipse中运行。

步骤

  1. 打开 d:\adt-bundle-windows-x86\eclipse 目录下的 eclipse.exe ,第一次打开会提示设置工作区,你可以根据需要设置,本文为了演示使用默认设置。
  2. 检查SDK和NDK的路径是否正确:
    • 选择 Windows/Preferences 菜单项,打开选项对话框。
    • 选择 Android 结点,检查 SDK Location 是否正确,本文为 F:\software\adt-bundle-windows-x86-20131030\sdk ,如果没有值,手动将SDK的根目录设置进去。
    • 接着选择 Android/NDK 结点,在 NDK Location 输入 d:\adt-bundle-windows-x86\android-ndk-r8e
  3. 导入工程:
    • 选择 file/import ,打开导入对话框。
    • 选择 Android/Existing Android Code Into Workspace ,然后点击 Next
    • 第一步先导入 libcocos2dx :在 Root Directory 输入 F:\cocos2dx\mbgame\mygame1\cocos2d\cocos\2d\platform\android\java ,此时会列出 libcocos2dx 工程,点击 finish 导入。
    • 第二步导入我们的工程:在 Root Directory 输入 F:\cocos2dx\mbgame\mygame1\proj.android ,此时会列出 mygame1 工程,点击 finish 导入。
  4. 最后连接手机,选择运行或调试即可运行程序。

遇到的问题及解决方法

  • 未导入 libcocos2dx:只导入 mygame1 时不会有编译错误,但运行起来后会出现 ClassNotFound 异常,提示找不到 org/cocos2dx/lib/Cocos2dxHelper 类。希望后续官方能提供详细的文档。
  • SDK版本问题:由于ADT只包含了 android4.4(api-19) 的版本,默认使用该版本。如果将 Build target 设置为 android2.3(api-9) ,运行程序会提示 Unable to execute dex: java.nio.BufferOverflowException 错误。这是 Android SDK Build tools 的BUG,将其升级到 19.0.3 即可解决。打开SDK Manager,找到19.0.3的Android SDK Build Tools并安装。

作者信息

boke

boke

共发布了 3994 篇文章