cocos2d-x 3.0rc開發指南:Windows下Android環境搭建

Cocos2d-x 3.0rc開發指南:Windows下Android環境搭建

1. 配置JDK

本人的系統是Win7 64位版,但安裝的是JDK7,Windows X86版。java

假設安裝目錄在:C:\Program Files (x86)\Java\jdk1.7.0_21;固然也能夠是其餘地方python

  • 設置環境變量:linux

JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_21android

CLASSPATH=.;%JAVA_HOME%\lib;ios

Path增長%JAVA_HOME%\bin;web


本文假設你知道怎麼設置環境變量,若是不知道,請使用搜索引擎查找相關資料,設置完後打開cmd,輸入java -versionapache

若是出現下面提示,代表環境變量設置成功:json

C:\Users\arlin>java -versionwindows

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。

下載地址是:http://developer.android.com/sdk/index.html

能夠選擇32位或64位版本,我選擇的是32位版的,把它解壓到一個目錄,我這裏是:d:\adt-bundle-windows-x86\,目錄結構以下:

--<adt-bundle-windows-x86>

  --<eclipse>

  --<sdk>

  --SDK Manager.exe

3. 下載Android NDK

下載地址是:http://developer.android.com/tools/sdk/ndk/index.html

一樣有32位和64位版可選,我選擇的是32位版的,把它解壓到adt同目錄下,如今adt的目錄結構以下:

--<adt-bundle-windows-x86>

  --<eclipse>

  --<sdk>

  --<android-ndk-r8e>

  --SDK Manager.exe

4. 下載ANT

ANT是爲了自動構建Android程序用。

下載地址是:http://ant.apache.org/bindownload.cgi

我選擇的是: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

  • 原來cocos2dx在不一樣平臺下必須用不一樣的腳原本建立和構建工程,3.0之後都統一用python了,因此Windows下須要安裝python環境:

下載地址: https://www.python.org/ftp/python/2.7.3/python-2.7.3.msi

原來下載了最新的版本,使用setup.py的時候發現有語法錯誤,因此最好使用2.7.3版本,親測過沒有問題

  • 配置環境變量:最新版本能夠自動加進path環境變量,但2.7.3不行,因此咱們只能本身設置一下,假設個人Python安裝在:d:\Python27\

把這個路徑加到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,下載地址是:http://cocostudio.download.appget.cn/Cocos2D-X/3.0RC0/cocos2d-x-3.0rc0.zip

下載完解壓到一個地方,我這裏:f:\cocos2dx\cocos2d-x-3.0rc0\

2. 設置環境變量

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-cons

ole/bin


-> Looking for NDK_ROOT envrironment variable... NOT FOUND

        Please enter its path (or press Enter to skip): d:\adt-bundle-windows-x8

6\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-x8

6\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-x8

6\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 t

ake 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,讓咱們看看new提供了哪些參數,打到cmd,輸入:

cocos new --help

獲得下面幫助:

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整個框架都拷貝過來了,這種好壞就見仁見智了,

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輸入:

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


意思就是說咱們要編譯當前目錄下的Android工程,同時能夠有4個編譯任務,因此個人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跑跑看

  • d:\adt-bundle-windows-x86\eclipse打到eclipse.exe

第一次會提示設置工做區,你能夠設置工做區放在哪裏,我這裏爲了演示就默認了。

  • 接下來咱們要看看SDK和NDK的路徑是否正確:

    • 選擇Windwos/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

  • 接下來咱們來導入工程,選擇file/import,打開導入對話框:

    • Root Directory輸入F:\cocos2dx\mbgame\mygame1\proj.android

    • 此時會列出mygame1工程,點擊finish把工程導進來。

    • Root Directory輸入F:\cocos2dx\mbgame\mygame1\cocos2d\cocos\2d\platform\android\java

    • 此時列出libcocos2dx工程,點擊finish把工程導進來。

    • 選擇Android/Existing Android Code Into Workspace,而後Next

    • 第一步要先把libcocos2dx導進來:

    • 第二步導入咱們的工程:

    • 最後鏈接手機,選擇運行或調試就能夠跑程序了。

  • 在導入工程到Eclipse時遇到幾個坑,在這裏記下來,省得後面的人繼續踩這些坑:

    • 沒有導libcocos2dx,只導mygame1時不會有編譯錯誤,但跑起來後會ClassNotFound異常,說找不到org/cocos2dx/lib/Cocos2dxHelper類,這個問題搞了我很久,後來在論壇看到貼子才明白,但願後續官方有詳細的文檔。

    • 由於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,安裝之。

相關文章
相關標籤/搜索