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)設定
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”和“
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環境變數。
三、建立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鍵+滑鼠右鍵 選擇在此處開啟命令視窗。
然後就可以使用 cocos compile -p android –-ap 20方式編譯APK檔案了(--ap 20是指定android平臺)
漫長的等待吧,當然這裡要提醒一點3.1版本用的是 android-20,如果E:\Android\sdk\platforms目錄下沒有android-20 請建立一個空的。
等待完畢之後 看下這個資料夾下的 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
如果你遇到這個問題,那麼就要在
下建立一個空的android-20資料夾,這個問題坑了我很久!同時要檢視命令是否是 –ap 20(雙-)。
檢查\proj.android目錄下的project.properties是否是android-20
2、 編譯時,提示找不到gcc工具鏈 (Couldn't find the gcc toolchain)。
3、 如果遇到android api問題
找到執行進行更新,看缺哪個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
2、 匯入專案,同理
3、 此時專案會報錯,因為沒有引用Cocos2d-x 的庫檔案
解決:右擊專案 選擇 Properties->Android 拉到最下面
Remove掉報錯的庫檔案路徑,
Add 選擇libcocos2dx
4、 在vs中如果新建 了 新的cpp檔案,需要在 在Android.mk中新增相應的檔案,格式與圖中一致,注意相對路徑
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