1. 程式人生 > >Windows平臺下Cocos2d-x 打包Android平臺APK

Windows平臺下Cocos2d-x 打包Android平臺APK

從Cocos2d-x 3.2專案打包成apk安卓應用檔案,搭建安卓環境的步驟有點繁瑣,但搭建一次之後,以後就會非常快捷!(涉及到3.1.1版本的,請自動對應3.2版本,3.x版本的環境搭建都是一樣的)

一、軟體

(1)VS2012(C++11特性在VS2012以上可以使用)

(4) 可能需要VPN,沒有VPN跳過(4)

   注:有的資源可能不適合x86電腦,x86電腦可以(3)、(4)連結交叉獲取資源

二、軟體安裝與環境配置

1、VS環境安裝

2、JDK環境安裝:右擊計算機->屬性->高階系統設定->環境變數(分為使用者變數和系統變數);

1)安裝:直接點選下一步即可安裝完成。

2)配置環境變數:

a)在系統或使用者變數中新加環境變數JAVA_HOME為JDK的安裝路徑,如:D:\Java

b)把”%JAVA_HOME%\bin”加入到系統變數的Path中,記得用分號隔開。在使用者變數中新增CLASSPATH變數為“.;%JAVA_HOME%\lib;”注意前面還有個點。JDK環境配置完成。

3)開始->執行->cmd或win+R進入DOS視窗:輸入java -version檢視JDK是否安裝成功。重啟DOS視窗,環境配置成功。

3、ANT環境安裝

1)解壓apache-ant-1.9.3-bin.zip,ant是一個批處理工具;

2)設定

ANT_ROOT,如:D:\cocos\apache-ant-1.9.3\bin,bin是我ant安裝目錄下的bin資料夾,ANT_ROOT環境變數在系統使用者中新增

3)把“%ANT_ROOT%”加入到系統變數Path中,記得分號隔開。

4、ADT環境安裝(包括SDK和Eclipse)

1)解壓adt-bundle-windows-x86-20140624.zip;

2)設定ANDROID_SDK_ROOT環境,系統變數中增加。值如:”D:\cocos\adt-bundle-windows-x86-20140624\sdk“;

3)把“%ANDROID_SDK_ROOT%\tools”和“

%ANDROID_SDK_ROOT%\platform-tools“加入系統Path變數中,記得分號隔開。

4)安裝完ADT,將Eclipse目錄下的eclipse.exe新增到桌面,雙擊即可完成eclipse的ADT環境的安裝。

5)進入DOS下,輸入:adb -h檢視是否配置成功,關閉DOS重啟即可配置成功。

5、安裝NDK:Cocos2d-x3.2對NDK的要求r9d

1)解壓android-ndk-r9d-windows-x86.zip;

2)設定NDK_ROOT環境變數,在系統變數中增加。值如:”D:\cocos\android-ndk-r9d“;

3)把”%NDK_ROOT%“加入到系統變數Path中,記得分號隔開。

6、安裝Python:下

1)載並安裝Python-2.7.5.msi(必須為2.7版本)

2)把Python的環境加入到系統Path變數中,值如:“C:\Python27”;

最終Path如下:“C:\Python27;%JAVA_HOME%\bin;%ANDROID_SDK_ROOT%\tools;%ANDROID_SDK_ROOT%\platform-tools;%ANT_ROOT%;%NDK_ROOT%;"

環境配置成功後重啟或者關閉DOS或計算機即可更新環境變數。

進入Cocos2d-x3.2根目錄,在DOS下執行setup.py看看以上路徑是否存在並正確配置,如果成功如下圖:並且在使用者環境變數下自動生成COCOS_CONSOLE_ROOT環境變數。

交叉,android,配置,編譯,環境0

三、建立Cocos2d-x3.2新專案

1、進入cocos2d-x-3.2\tools\cocos2d-console\bin;在DOS下輸入:“cd  /D  檔案路徑”可進入任意檔案路徑內。也可以在要進入的檔案下使用shift+右擊,選擇在此處開啟命令視窗,同樣可以進入該目錄。

2、在終端輸入命令:cocos new  專案名稱  -p  包名  -l  cpp  -d  專案路徑,建立專案成功;

3、進入專案工程下的Cocos\MyCppGame\proj.win32資料夾中,雙擊.sln或者.vcxproj開啟專案工程,F5執行程式即可;

然後就可以在專案目錄下使用 cocos compile -p android方式編譯APK檔案了。

注意:在打包apk之前需要修改proj.android/jni資料夾下的Android.mk檔案新增自己新增的CPP檔案,這裡的新增指的是非cocos2dx生成的專案檔案(自己新增的檔案)。一定要把自己新增的檔案或資料夾包含進apk。

首先我們拿官方的 cpp-tests專案來試手吧!

按住shift鍵+滑鼠右鍵 選擇在此處開啟命令視窗。

1407380218765196.png

然後就可以使用 cocos compile -p android –-ap 20方式編譯APK檔案了(--ap 20是指定android平臺)

1407380234565109.png

漫長的等待吧,當然這裡要提醒一點3.1版本用的是 android-20,如果E:\Android\sdk\platforms目錄下沒有android-20 請建立一個空的。

1407380247882874.png

等待完畢之後 看下這個資料夾下的 apk吧!可以安裝到手機上試一下了。(生成的APK一般在專案目錄下\bin\debug\android,直接拷貝到手機,安裝即可。)

五、異常處理

1、 Android platform not specified, searching a default one...

Can't find right android-platform for project :

"F:\cocos2d-x-3.1.1\tests\cpp-tests\proj.android".

The android-platform should be equal/larger than 20

如果你遇到這個問題,那麼就要在

1407380307141750.png

下建立一個空的android-20資料夾,這個問題坑了我很久!同時要檢視命令是否是 –ap 20(雙-)。

檢查\proj.android目錄下的project.properties是否是android-20

1407380330917492.png 

2、  編譯時,提示找不到gcc工具鏈 (Couldn't find the gcc toolchain)。

3、  如果遇到android api問題

1407380408581713.png

找到執行進行更新,看缺哪個api就更新哪個,不過這個更新比較慢,原因google被禁了。

4、Android NDK: Invalid APP_STL value: c++_static 這個要修改jni/Application.mk

APP_STL := c++_static

NDK_TOOLCHAIN_VERSION=clang

APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char

APP_LDFLAGS := -latomic

改成:

APP_STL := gnustl_static

# add -Wno-literal-suffix to avoid warning: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix] 

# in NDK_ROOT/arch-arm/usr/include/sys/cdefs_elf.h:35:28: when using ndk-r9

APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 -std=c++11 -Wno-literal-suffix -fsigned-char

5、Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 

這是因為NDK指定的版本與minSdkVersion不一致的問題,修改AndroidManifest.xml檔案 其中android:minSdkVersion修改為<uses-sdk android:minSdkVersion="20"/>



六、在Eclipse中執行:(此處為轉載)轉載自:http://blog.csdn.net/ku726999/article/details/38121927

Android開發的應該已經配好 SDK

1、 匯入cocos2d-x的jar包

Eclipse選單 File->Import->Android->Existing Android Code Into Workspace

  交叉,android,配置,編譯,環境1

2、 匯入專案,同理

  交叉,android,配置,編譯,環境2

3、 此時專案會報錯,因為沒有引用Cocos2d-x 的庫檔案

解決:右擊專案 選擇 Properties->Android  拉到最下面

      Remove掉報錯的庫檔案路徑,

      Add    選擇libcocos2dx

  交叉,android,配置,編譯,環境3

4、 在vs中如果新建 了 新的cpp檔案,需要在 在Android.mk中新增相應的檔案,格式與圖中一致,注意相對路徑

 交叉,android,配置,編譯,環境4

 5、注意,如果更改了vs2012中的程式碼,就需要重新執行一下build_native.py


參考教程

教程1:http://www.mysjtu.com/page/M0/S962/962815.html
教程2:http://blog.csdn.net/myarrow/article/details/24474933
教程3:http://www.tuicool.com/articles/YrAZFv
教程4:http://blog.csdn.net/ku726999/article/details/38121927

本文轉載自: http://www.itnose.net/detail/6090401.html