1. 程式人生 > >Windows 搭建 cocos2d-x3.x 開發環境及 android 打包

Windows 搭建 cocos2d-x3.x 開發環境及 android 打包

cocos2d版本更新之快及版本之混亂是出了名的。cocos2d打包android apk也是出了名的麻煩。所以,對於我這種新手來說,配置cocos2d-x的安卓環境就是出了名的難。經過兩天的折騰,終於搞出了一個方案,雖然算不上最好的方案,但也算是一種比較可行的方案。

本文使用的cocos版本是cocos2d-x3.10。

話不多說,現在開始。

首先,本文所用到的工具我已經上傳到網盤,有需要的可前往下載:

一、安裝強大的IDE

第一步,當然是安裝windows上必不可少的VS啦。3.10可用的vs版本有12,13,15.本文使用的是vs2015專業版。vs的安裝沒什麼好說的,只需要等待就行了。要注意的是預設安裝是沒有c++環境的,在安裝的時候要選自定義安裝然後把c++勾選上,也可以安裝完成後在新建專案那裡安裝。

二、安裝配置cocos

本人喜歡cocos這個整合引擎(工具),雖然觸控已經把它放棄了。cocos集成了cocos2d-x和cocostudio,建立專案的時候可選原始碼和預編譯庫兩種,原始碼和cocos2d-x在命令列建立專案一樣,把cocos2d的原始碼拷到工程目錄下,所以整個工程的結構就很大,完整編譯也要很久。預編譯庫則不用拷貝引擎原始碼,工程結構很小,每次編譯都很快,這也是我開始喜歡上cocos的原因。但是,本文所用的方式還是原始碼的形式,因為預編譯庫不支援android studio,直接用命令列打包apk也會出錯,所以這個坑就不跳了。

2.1下載安裝python2.7

cocos的很多命令都是基於python2.x的,所以安裝cocos前要先安裝python2.7。下載安裝就沒什麼好說的,安裝完成後要把python新增到環境變數,這樣才能在控制檯直接使用ptyhon命令。

在path後面加上python安裝後的根路徑,比如我的環境:


注意變數值每個項之間要用英文分號隔開。

設定完成後開啟cmd,輸入python,出現這個介面表示環境配置成功了。


2.2安裝cocos

直接雙擊cocos安裝程式,安裝完成之後會在桌面生成cocos和cocostudio兩個圖示。cocos用於專案管理,可建立專案,分別用vs,android studio和cocostudio開啟專案。

環境變數配置,使用cocos安裝程式免去了配置環境的麻煩,安裝程式已自動配置好環境變數。開啟cmd,輸入set cocos我們可看到已經成功添加了COCOS_X_ROOT,COCOS_TEMPLATES_ROOT和COCOS_CONSOLE_ROOT這三個變數。

輸入set path會發現COCOS_TEMPLATE_ROOT和COCOS_CONSOLE_ROOT已經加入到path變數中去。


輸入cocos,看到以下介面表示cocos已經安裝並配置完成


2.3建立cocos2d專案

建立專案有兩種方式,

第一種是直接在命令列建立,使用命令

cocos new 專案名 -l cpp/lua/js -d 專案存放路徑 -p 包名

這種方式建立的專案是拷貝原始碼的,即會將cocos2d-x3.10的原始碼拷貝到工程目錄下。(cocos命令使用的是環境變數配置的路徑,環境配置的是3.10的版本,所以使用的是3.10的命令,如果想用其它版本,直接修改環境變數即可,不修改也行,在引擎目錄下的tools/cocos-console/bin下開啟命令列,然後呼叫cocos.py來建立專案,引數跟上面一樣)

第二種是使用cocos來建立,注意選擇引擎版本,引擎型別和專案語言,然後點選完成即可。


專案建立完成後就可以直接開啟vs編譯win32版本啦,原始碼方式建立的專案要編譯很久,預編譯庫建立的專案編譯起來跟控制檯專案一樣快,就是爽!

三、安裝並配置jdk

安裝過程沒什麼好說的,安裝完成後要配置環境變數

新建一個變數JAVA_HOME,設定它的值為jdk根目錄,比如


新建一個變數CLASSPATH,設定它的值為 .;%JAVA_HOME%\lib


然後在path後面加上%JAVA_HOME%\bin,注意項與項之間用分號隔開。


開啟命令列,輸入java -version和javac -version,出現下面介面表示配置成功了


四、配置安卓SDK、NDK、ANT

下載sdk,ndk,ant並解壓,建議解壓到一起,方便管理。像我就放到cocos目錄下,新建一個tool目錄。


接下來是配置這三個的環境變量了,有兩種方式

第一種,在cocos2d-x3.10目錄下開啟cmd,然後執行setup.py命令,它會自動判斷有沒有配置這些環境,如果沒有,則會提示你輸入。

輸入setup.py後會提示你ndk沒有配置


把ndk根目錄拖進來,然後按回車確定


NDK配置成功,然後它提醒android沒有配置,也就是sdk沒有配置。把sdk根目錄拖進來,按回車確定


SDK配置成功,然後它提示ANT沒有配置,把ant目錄下的bin目錄拖進來,按回車結束。


重啟cmd,分別輸入set android,set ndk,set ant會看到這三個環境變數已新增成功。


第二種方式就沒什麼好說的了,就是手動建立這三個環境變數並設定值。

五、安裝Android Studio

安裝過程預設即可。第一次啟動時會提示設定SDK路徑,設定一下即可。

接下來就可以打包APK了。

第一步,新建一個專案HelloWorld,選擇原始碼方式,cocos2d-x3.10,c++。


第二步,開啟Android Studio,匯入專案,選擇proj.android-studio目錄。



注意,3.10版本建立的專案預設使用的grade是2.4,匯入之前先檢查一下電腦上有沒有grade2.4,如果沒有的話放進去(上面的網盤上有)。如果不檢查的話很大可能會在匯入的時候卡死,因為android studio會自動去谷歌官網下一個,然後你懂的。

檢查這個路徑下有沒有東西,如果沒有把grade-all-2.4.zip放進去。

C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.4-all\6r4uqcc6ovnq6ac6s0txzcpc0

導進去之後會出現下面的錯誤,這是因為這個版本的android studio需要使用2.10的grade.按照提示更新,重新整理一下即可。



第三步,開啟cmd編譯c++程式碼。在HelloWorld目錄下或者proj.android-studio目錄下開啟命令列,輸入以下命令:

cocos compile -p android --android-studio(如果不想生成apk,加上--no-apk)

如果上面的環境配置都沒有錯的話,就會出現下面的介面


編譯完成後會在HelloWorld/bin/debug/android下面生成一個apk檔案。

把apk檔案安裝到手機或模擬器就可以運行了,或者開啟android studio執行。

3月16日補充:

上面列出的方案只有原始碼+android studio一種,昨天晚上回家又試了一下,發現其它方案也是可以的。

一、預編譯庫+android

編譯方式:cocos compile -p android

編譯不過的原因:引擎的坑。引擎本身已經預編譯好了C++程式碼,生成的.a檔案放在prebuilt/android(win32放在prebuilt/win32)下,我們編譯的時候就直接拿這些.a檔案過來連結就可以了,不用重新編譯引擎原始碼。但是!這些預編譯的中間檔案有問題!觸控挖這麼大個坑真的好嗎,當然cocos是開源的,也有可能是某些欠揍的人乾的。不過,作為從官網下的包都會有問題,也只能呵呵了。

解決方法:用原始碼的方式新建一個專案,然後編譯成android studio的方式(編譯成android也行,這就是下面要講的第二種方案,這個也有坑),然後把編譯出來的.a檔案複製出來覆蓋掉引擎裡面的.a檔案。

二、原始碼+android

編譯方式:cocos compile -p android

編譯不過的原因:同樣是引擎的坑。修改下面這幾個檔案:


開啟這些檔案後,可以看到這兩行


把它修改為下面這樣


原因:這幾個檔案也不能說它有錯,在vs裡面編譯就沒有問題。但是!這是十分不嚴謹的,有些編譯器沒有相應的設定就編譯不過。ExtensionMacros.h位於這幾個檔案的上一層,也就是Extension下面。使用../ExtensionMacros.h就可以保證在什麼情況下都可以正確找到這個檔案,但Extension/ExtensionMacro.h就不一定了,它首先得保證能找到Extension這個相對目錄,vs能找到是因為已經在屬性設定那裡把這個目錄Include進來了,換個編譯器可能就找不到了。

注:前面這兩個坑我都已經填上了,可以在安裝完cocos之後,把網盤裡面的cocos2d-x3.10.rar解壓後替換掉cocos2d-x裡面的cocos2d-x3,10。

總結一下:

共有三種打包apk的方式:

預編譯庫+android:cocos compile -p android

原始碼+android:cocos compile -p android

原始碼+androidsutdio:cocos compile -p --android-studio

第三種方案編譯完成後可匯入android studio執行,前面兩種暫時測試的結果是匯入之後有問題。但無意外,三種方式編譯之後都會生成apk檔案,直接安裝apk檔案就可以了。