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

6、當然還得下載最新的cocos2d-x給出http://cocos2d.cocoachina.com/download

我的是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給的幾個小遊戲了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章