本人的系統(tǒng)是Win7 64位版,但安裝的是JDK7,Windows X86版。假設(shè)安裝目錄在:C:\Program Files (x86)\Java\jdk1.7.0_21;當(dāng)然也可以是其他地方
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_21CLASSPATH=.;%JAVA_HOME%\lib;Path增加%JAVA_HOME%\bin;本文假設(shè)你知道怎么設(shè)置環(huán)境變量,如果不知道,請使用搜索引擎查找相關(guān)資料,設(shè)置完后打開cmd,輸入java -version如果出現(xiàn)下面提示,表明環(huán)境變量設(shè)置成功:C:\Users\arlin>java -versionjava 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)
Google為Android開發(fā)者提供了ADT(Android Developer Tools),里面包含了SDK和Eclipse。
可以選擇32位或64位版本,我選擇的是32位版的,把它解壓到一個目錄,我這里是:d:\adt-bundle-windows-x86\,目錄結(jié)構(gòu)如下:--<adt-bundle-windows-x86>--<eclipse>--<sdk>--SDK Manager.exe
同樣有32位和64位版可選,我選擇的是32位版的,把它解壓到adt同目錄下,現(xiàn)在adt的目錄結(jié)構(gòu)如下:--<adt-bundle-windows-x86>--<eclipse>--<sdk>--<android-ndk-r8e>--SDK Manager.exe
ANT是為了自動構(gòu)建Android程序用。我選擇的是:apache-ant-1.9.3-bin.zip,同樣解壓到adt目錄下,現(xiàn)在adt的目錄結(jié)構(gòu)如下:--<adt-bundle-windows-x86>--<eclipse>--<sdk>--<android-ndk-r8e>--<apache-ant-1.9.3>--SDK Manager.exe
下載地址:https://www.python.org/ftp/python/2.7.3/python-2.7.3.msi
原來下載了最新的版本,使用setup.py的時候發(fā)現(xiàn)有語法錯誤,所以最好使用2.7.3版本,親測過沒有問題
把這個路徑加到path環(huán)境變量中,當(dāng)我們在cmd下輸入python,出現(xiàn)下面字樣,就說明環(huán)境變量設(shè)置正確了:C:\Users\arlin>pythonPython 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>>
目前最新版本是3.0RC,下載地址是:http://cocostudio.download.appget.cn/Cocos2D-X/3.0RC0/cocos2d-x-3.0rc0.zip下載完解壓到一個地方,我這里:f:\cocos2dx\cocos2d-x-3.0rc0\
cc需要下面幾個環(huán)境變量,用于后面的新建工程,構(gòu)建工程等:
這幾個環(huán)境變量是通過cocos2d-x根目錄下的setup.py來配置的,我們啟動cmd,運行setup.py:F:\cocos2dx\cocos2d-x-3.0rc0>setup.py此時腳本需要我們提供NDK,SDK,ANT的路徑,我們根據(jù)之前放的路徑輸入就是了,整個命令過程如下: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 FOUNDPlease enter its path (or press Enter to skip): d:\adt-bundle-windows-x86\android-ndk-r8eADDED-- Added: NDK_ROOT = d:\adt-bundle-windows-x86\android-ndk-r8e-> Looking for ANDROID_SDK_ROOT envrironment variable... NOT FOUNDPlease enter its path (or press Enter to skip): D:\adt-bundle-windows-x86\sdkADDED-> Added: ANDROID_SDK_ROOT = D:\adt-bundle-windows-x86\sdk-> Looking for ANT_ROOT envrironment variable... NOT FOUNDPlease enter its path (or press Enter to skip): d:\adt-bundle-windows-x86\apache-ant-1.9.3\binADDED-> Added: ANT_ROOT = d:\adt-bundle-windows-x86\apache-ant-1.9.3\binSet up successfull:COCOS_CONSOLE_ROOT was added into registryNDK_ROOT was added into registryANDROID_SDK_ROOT was added into registryANT_ROOT was added into registryPlease restart the terminal or restart computer to make added system variables take effect命令最后提示我們重啟終端或者重啟系統(tǒng),以讓這些環(huán)境變量生效,一般我們關(guān)閉cmd和資源瀏覽器就行了,如果后面遇到環(huán)境變量找不到的錯誤,直接重啟系統(tǒng)試試吧。要測試環(huán)境變量是否生效,重新打開cmd,輸入下面命令查看,正常應(yīng)該是這樣:F:\cocos2dx\cocos2d-x-3.0rc0>set NDK_ROOTNDK_ROOT=d:\adt-bundle-windows-x86\android-ndk-r8eF:\cocos2dx\cocos2d-x-3.0rc0>set ANT_ROOTANT_ROOT=d:\adt-bundle-windows-x86\apache-ant-1.9.3\binF:\cocos2dx\cocos2d-x-3.0rc0>set ANDROID_SDK_ROOTANDROID_SDK_ROOT=D:\adt-bundle-windows-x86\sdkF:\cocos2dx\cocos2d-x-3.0rc0>set COCOS_CONSOLE_ROOTCOCOS_CONSOLE_ROOT=F:\cocos2dx\cocos2d-x-3.0rc0\tools/cocos2d-console/bin
我們要用tools\cocos2d-console這個工具來新建工程,這個工具提供了下面幾個功能:我們現(xiàn)在只用到new,讓我們看看new提供了哪些參數(shù),打到cmd,輸入:
- new 創(chuàng)建一個新的工程
- compile 編譯當(dāng)前工程,生成二進制文件,個人覺得寫為build更貼切一些。
- deploy 發(fā)布程序到一個平臺
- run 編譯和發(fā)布,和運行程序
cocos new --help得到下面幫助:usage: cocos new [-h] [-p PACKAGE_NAME] -l {cpp,lua,js} [-d DIRECTORY][-t TEMPLATE_NAME] [--no-native][PROJECT_NAME]創(chuàng)建一個新工程必要參數(shù):PROJECT_NAME 工程名可選參數(shù):-h, --help 顯示幫助信息-p PACKAGE_NAME, --package PACKAGE_NAME設(shè)置包名,如com.colin.mbgame-l {cpp,lua,js}, --language {cpp,lua,js}使用的主要語言,可以是:[cpp | lua | js]-d DIRECTORY, --directory DIRECTORY工程所在的目錄-t TEMPLATE_NAME, --template TEMPLATE_NAME要創(chuàng)建的工程模板名lua/js 工程參數(shù):--no-native No native support.
現(xiàn)在我們在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.pynew mygame1 -p com.colin.mbgame -l cpp -d f:\cocos2dx\mbgameRuning 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'
這表明我們已經(jīng)成功創(chuàng)建一個工程,到f:\cocos2dx\mbgame\看看,工程目錄結(jié)構(gòu)如下:--<mygame1>--<Classes>--<cocos2d>--<proj.android>--<proj.ios_mac>--<proj.linux>--<proj.win32>--<Resources>--.cocos-project.json--CMakeLists.txt可以看到各種平臺下的工程都創(chuàng)建出來了,同時它把cocos2d整個框架都拷貝過來了,這種好壞就見仁見智了,
同時是用到cocos2d-console,這里要用的是compile這個命令,在cmd輸入下面查看幫助:f:\cocos2dx\mbgame\mygame1>cocos compile --helpusage: cocos compile [-h] [-s SRC_DIR] [-q] [-p PLATFORM] [-m MODE] [-j JOBS][--ap ANDROID_PLATFORM] [--source-map]把當(dāng)前工程編譯為二進制可選參數(shù):-h, --help 顯示幫助信息-s SRC_DIR, --src SRC_DIR工程根目錄,比如上面應(yīng)該是f:\cocos2dx\mbgame\mygame1如果不設(shè),就為當(dāng)前目錄(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核,可以設(shè)為4。Android Options:--ap ANDROID_PLATFORM指定SDK版本?沒試過,不敢枉下定論,保留英文:parameter for android-update.Without the parameter,thescript just build dynamic library for project. Validandroid-platform are:[10|11|12|13|14|15|16|17|18|19]Web Options:--source-map Enable source-map
現(xiàn)在我們在cmd輸入:
F:\cocos2dx\mbgame\mygame1>cocos compile -p android -j 4意思就是說我們要編譯當(dāng)前目錄下的Android工程,同時可以有4個編譯任務(wù),所以我的4核機器就滿負的跑了,如無意外,應(yīng)該可以看到編譯開始了,最后如果看到下面這幾句,說明編譯成功:
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,說明構(gòu)建完成。
我把它安裝到手機上試跑,發(fā)現(xiàn)好像啟動速度是快了很多,不知是不是心理作用。
第一次會提示設(shè)置工作區(qū),你可以設(shè)置工作區(qū)放在哪里,我這里為了演示就默認了。
Unable to execute dex: java.nio.BufferOverflowException后來在網(wǎng)上查了一下,發(fā)現(xiàn)是Android SDK Build tools的BUG,把它升級到19.0.3后就好了:打開SDK Manager,找到19.0.3的Android SDK Build Tools,安裝之。