win8下配置cocos2d-x+android+eclipse(核心部分)
在win8上搞這東西搞了兩天,同學在蘋果的本上配置只用了很短的時間....
在此只記錄配置的核心部分,jdk,sdk,eclipse,adt,ndk,cdt,cygwin安裝網上都有大篇的安裝教程不用累述。
我的開發工具的安裝目錄或者解壓目錄如下:
1、sdk:D:\adt-bundle-windows-x86\sdk
2、eclipse:D:\adt-bundle-windows-x86\eclipse
3、ndk:D:\android-ndk-r8e
4、cygwin:D:\cygwin
5、jdk:D:\Java\jdk1.6.0_11
我的是cocos2d-2.1rc0-x-2.1.3.zip解壓到一個目錄我的是:D:\cocos2d-2.1rc0-x-2.1.3
****下面的步驟我認為都是很重要的*****
1、JDK環境變數
新建環境變數:JAVA_HOME 值為:D:\Java\jdk1.6.0_11(jdk安裝目錄)
新建環境變數:CLASSPATH 值為:
.;%JAVA_HOME%\lib; ( 注意:點號表示當前目錄,不能省略)
在系統變數Path的值的前面加入以下內容:%JAVA_HOME%\bin;(注意:這裡的分號不能省略)到這裡,JDK安裝完畢。
單擊“開始”—>“執行”—>輸入:cmd命令,在CMD視窗中輸入:java -version
出現如下介面,就表示安裝成功:
新建環境變數
然後找到名為Path的系統變數,在句首新增%NDK_ROOT%;別忘記分號
3、SDK環境變數
新建環境變數:ANDROID_SDK_HOME 值為:D:\adt-bundle-windows-x86\sdk(sdk安裝目錄)
然後找到名為Path的系統變數,在句首新增%ANDROID_SDK_HOME%/platform-tools;%ANDROID_SDK_HOME%/tools;別忘記分號
4、cygwin環境變數
在path句首新增D:\cygwin;D:\cygwin\bin;
執行cygwin,在彈出的命令列視窗輸入:cygcheck -c cygwin
- 配置檔案許可權管理
Cygwin一樣模擬了Linux的許可權管理體系,這也沒有什麼不好的,但是跟Microsoft Windows的預設許可權管理卻有些不對付。常會出現許可權問題,一個檔案可以手動改,但如果是多個檔案就比較麻煩了,我這裡採用徹底的解決方法是,在安裝好Cygwin以後,禁止Cygwin採用POSI體系的許可權管理。使用文字編輯器開啟 Cygwin目錄\etc\fstab,末尾新增程式碼: none / cygdrive binary,user,noacl,posix=0 0 0
在命令列中進入cygwin目錄,並執行cygwin.bat,如果你不是用Administrator賬號登入的系統,那麼會在cygwin\home\資料夾中生成一個以你的登入名命名的新的資料夾。
修改新生成資料夾中的“.bash_profile ”檔案,用UE或editplus等文字編輯器開啟,在最後增加: (/d/android-ndk-r8e是安裝ndk的路徑)
NDK_ROOT=/cygdrive/d/android-ndk-r8e
export NDK_ROOT
然後儲存關閉。
5、cocos2d-x配置
進入cocos2d-x目錄(我的是D:\cocos2d-2.1rc0-x-2.1.3)選擇create-android-project.bat用編輯器開啟,在此檔案的第一行加上cd /d %~dp0,在該檔案中找到以下幾個定義 : _CYGBIN、_ANDROIDTOOLS、_NDKROOT。
將_CYGBIN=設定為cycgwin\bin安裝的的絕對路徑。
將_ANDROIDTOOLS設定為android sdk 的tools絕對路徑
將_NDKROOT設定為android ndk的絕對路徑
修改完畢,儲存後。如下圖
6、修改ndk的一個自帶bug
在ndk目錄下找到D:\android-ndk-r8e\build\core\build-binary.mk用編輯器開啟,大概在第49行:將$(cleantarget): PRIVATE_CLEAN_FILES := ($(my)OBJS)修改為$(cleantarget): PRIVATE_CLEAN_FILES := $($(my)OBJS)
其實就是多了一個$符號
7、建立一個android+cocos2d-x的HelloWorld程式
在cocos2d-x的目錄下找到並雙擊create-android-project.bat開始工程建立嚮導
- 首先是輸入包名(建議按照android的命名規則),如org.yourname.test
- 然後輸入工程名稱(注意不要輸入已有的資料夾的名字,如果同名,會被覆蓋掉的)如HelloWorld
- 選擇target id,他會列出不同API方案用ID來標識,根據你的需要選擇
- 建立完成(如果建立過程中遇到許可權錯誤,請確認上述Cygwin檔案許可權管理是否配置過了)
- 檢視cocos2d-x的目錄下,則多了一個資料夾,資料夾名則為你剛剛輸入的工程名稱HelloWorld
進去看到三個資料夾:
Classes 存放預設工程的C++檔案
proj.android android的eclipse工程專案
Resources 資原始檔
****選擇sdk***輸入id號
開啟eclipse將專案匯入Eclipse;File->Import->Android->Existing Android Code Into Workspace
Root Directory 選擇剛剛建立的HelloWorld專案下的proj.android,如下圖
然後會報一個錯誤,是因為沒有匯入cocos2d-x的java庫造成的,我們匯入D:\cocos2d-2.1rc0-x-2.1.3\cocos2dx\platform\android\java
在Eclipse裡,右鍵專案->properties->builders->new->program->ok
依次配置4個介面如下圖
1)main面板下->location->browse file system->選擇你的NDK目錄下的ndk-build.cmd
main面板下->working directory->browse workspace..->選擇當前專案
refresh面板下的specific resource選擇為當前目錄下的jni資料夾,如下圖
environment面板下->new...->如下所示
value處填寫
cocos2d-x的根目錄+分號+cocos2d-x的根目錄/cocos2dx/platform/third_party/android/prebuilt
Build Options面板下,Specify Resouces..選擇當前專案的jni資料夾,其他配置如下圖:
都弄好以後如果出現
說明api等級不符合,只要在AndroidManifest.xml裡面把minSdkversion修改一下就行了,如我應該修改成9
最後在clean一下,就等編譯了,時間稍微有點長,需要耐心,如果出現如下情況說明就好了!此時執行一下程式
執行如下
如果出現黑屏現象,則是因為許可權不夠的問題,此時將資原始檔複製到assest資料夾下。
將NDK 目錄下的/sources/cxx-stl/gnu-libstdc++/libs/armeabi/ 目錄下的libgnustl_static.a 檔案復
制到專案資料夾下的obj/local/armeabi/libgnustl_static.a
目錄下,之後右鍵專案選擇runas-Android
Application 執行就搞定了!
8、執行cocos2d-x的demo
cocos2d-x自帶了很多的demo,可以在D:\cocos2d-2.1rc0-x-2.1.3\samples下找到我們選擇D:\cocos2d-2.1rc0-x-2.1.3\samples\Cpp\TestCpp\proj.android匯入eclipse工程
直接就可以編譯執行的,如果不行就按照上面的辦法設定一個Builder,但是有時能夠編譯卻不能執行會出現一個**target pattren no % .stop(具體我也記不清了)的錯誤此時只要右鍵-專案名稱-屬性-C++構建,如下圖:
在構建命令這一行裡去掉反斜槓('/'),即把bash ${ProjDirPath}/build_native.sh換成bash ${ProjDirPath}build_native.sh
這樣就能夠執行程式了,如下圖:
如果出現AssetsManager.o的錯誤則直接清空org資料夾下的的內容再次執行
這樣就能執行cocos給的幾個小遊戲了