本文部分參考了:http://blog.csdn.net/sttyytw/article/details/17005263
系統環境:
Win7 64位中文旗艦版
各組件的版本:
VS2012
Python2.7.6 x86
Cygwinx64 http://cygwin.com/setup-x86_64.exe
Cocos2d-x 3.0 http://www.cocos2d-x.org/download
JDK1.8 x64 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
AndroidSDK ADT Bundle x64 20140321 https://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
AndroidNDK r9d x64 https://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip
Ant1.9.3 http://mirror.esocc.com/apache//ant/binaries/apache-ant-1.9.3-bin.zip
VisualGDB 4.1r10 http://visualgdb.com/download/VisualGDB-4.1r10-trial.msi
安裝步驟:
1. 默認安裝VS2012
2. 默認安裝Python 2.7.6,修改環境變量Path
wmic ENVIRONMENT where"name='path' and username='<system>'" setVariableValue="%path%;C:\Python27"
3. 默認安裝JDK 1.8,修改環境變量Path,增加環境變量JAVA_HOME、CLASSPATH
wmic ENVIRONMENT createname="JAVA_HOME",username="<system>",VariableValue="C:\ProgramFiles\Java\jdk1.8.0_05"
wmic ENVIRONMENT createname="CLASSPATH",username="<system>",VariableValue="%JAVA_HOME%\lib"
wmic ENVIRONMENT where"name='path' and username='<system>'" setVariableValue="%path%;%JAVA_HOME%\bin"
wmic ENVIRONMENT where"name='path' and username='<system>'" setVariableValue="%path%;%ANT_HOME%\bin"
4. 安裝Cygwin x64
添加163的鏡像源 http://mirrors.163.com/cygwin/
將Devel改爲Install
5. 建立文件夾C:\AndroidDev
6. 解壓縮adt-bundle-windows-x86_64-20140321.zip到C:\AndroidDev,修改環境變量Path
wmic ENVIRONMENT where"name='path' and username='<system>'" setVariableValue="%path%;C:\AndroidDev\adt-bundle-windows-x86_64-20140321\sdk\platform-tools"
wmic ENVIRONMENT where "name='path'and username='<system>'" setVariableValue="%path%;C:\AndroidDev\adt-bundle-windows-x86_64-20140321\sdk\tools"
7. 解壓縮android-ndk-r9d-windows-x86_64到C:\AndroidDev
8. 解壓縮apache-ant-1.9.3-bin.zip到C:\,修改環境變量Path,增加環境變量ANT_HOME
wmic ENVIRONMENT create name="ANT_HOME",username="<system>",VariableValue="C:\apache-ant-1.9.3"
9. 解壓縮cocos2d-x-3.0.zip到X:\
10. 打開CMD窗口,進入cocos2d-x-3.0文件夾,運行python setup.py,並輸入對應路徑
NDK: C:\AndroidDev\android-ndk-r9d
SDK: C:\AndroidDev\adt-bundle-windows-x86_64-20140321\sdk
ANT: C:\apache-ant-1.9.3\bin
11. 這裏最好重啓一下
創建項目:
使用cocos創建新項目
cocos new GameName -p com.CompanyName.GameName -l cpp -d D:\Projects
編譯項目:
1. 使用cocos編譯和運行項目
cocos run -s D:\Projects\GameName -p android
(如果只需要編譯項目的話 cocos compile -s D:\Projects\GameName -p android)
2. 手動編譯項目(這個方法打包出來的apk無法調試,目前還沒研究出怎麼調整)
A. 編譯Native Code
cd D:\Projects\GameName\proj.android
python build_native.py
有時候會因爲assets目錄刪除不同步的問題,出現失敗,只要再執行一次即可
B. 生成apk
android update project -p .
android update project -p../cocos2d/cocos/2d/platform/android/java
ant debug
C. 安裝到設備
cd bin
adb install GameName.apk
在設備上調試(注意不是虛擬機):
1. 安裝VisualGDB,需要選擇Android支持
2. 打開VS的菜單 -> ANDROID -> Setup SDK/NDKlocations,填寫如下
JDK Path (32 bit) C:\Program Files\Java\jdk1.8.0_05
Android SDK Path C:\AndroidDev\adt-bundle-windows-x86_64-20140321\SDK
Android NDK Path C:\AndroidDev\android-ndk-r9d
Apache ANT Path C:\apache-ant-1.9.3
3. 打開VS菜單 -> ANDROID -> Debug a Custon APKfile
APK file to debug D:\Projects\GameName\proj.android\bin\GameName-debug.apk
Startup activity org.cocos2dx.cpp.AppActivity(這一行應該是自動識別出來的)
Shared librarydirectory D:\Projects\GameName\proj.android\obj\local
其他保持默認,可以勾選“Savethe preset as”保存設置
如果手動安裝APK,可以勾選“Skip deploying the app”
如果調試的位置在剛啓動程序的時候,可以勾選“Debug code that executes during App startup”
4. Debug
備註:
1. VisualGDB可能無法加載符號表,結果是無法查看變量,主要是因爲NDK帶的gcc和gdb版本差異有點大,而且調試符號信息也是不同版本的,具體可參考:
http://forum.sysprogs.com/viewtopic.php?f=5&t=2971
http://forum.sysprogs.com/viewtopic.php?f=5&t=2829
有2種解決方法:
A. 更換編譯器爲clang:
在D:\Projects\GameName\proj.android\jni\Application.mk裏面添加 NDK_TOOLCHAIN_VERSION := clang3.3
B. 讓gcc生成更原始並且兼容性更好的調試信息:
在D:\Projects\GameName\proj.android\jni\Android.mk裏面添加 LOCAL_CFLAGS += -gdwarf-3