1. 程式人生 > >win8下配置cocos2d-x+android+eclipse(核心部分)

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 
出現如下介面,就表示安裝成功:

2、NDK環境變數

新建環境變數

:NDK_ROOT 值為:D:\android-ndk-r8e(ndk安裝目錄)

然後找到名為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的版本和執行狀態,如果status是ok的話,則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給的幾個小遊戲了