cocos2d-x安卓開發環境搭建(windows+eclipse+ndk 不用cygwin)

安卓環境搭建
 
【一 寫在前面】
環境搭建的順序是這樣
1.JDK&JRE         安裝JDK會順帶安裝JRE的,這一步是爲了可以編寫和允許普通的JAVA程序
2.Eclipse            JAVA 的 IDE,這一步是爲了方便地開發JAVA程序
3.CDT                是Eclipse的一個插件,這一步是爲了可以引入C++
4.ADT                是Eclipse的一個插件,這一步是爲了管理安卓開發庫
5.ADK                上一步是工具,這一步就是開發庫了,到了這一步你可以編寫普通的安卓程序
6.NDK                單有CDT還不行,它只能編輯,不能編譯,這一步是爲了可以編譯C++程序,然後在安卓中使用
 
這裏不需要使用cygwin這個麻煩的東西,我們使用新版本的ndk來編譯C++
 
【二 JDK的安裝】
JDK的最新版本是1.7,【重要】這裏需要下載使用 1.6的JDK,JDK自動包含JRE,使用1.7的JDKcocos的代碼會有"暫時性編譯錯誤"問題
下載安裝都是一路Next,下面的內容是安裝1.7之後降1.6的方法,直接安裝1.6的可以飄過
下載地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html
根據自己的操作系統選擇,這裏我用的是Java SE Development Kit 6u30

如果你像我一樣不幸,裝上了1.7,可以用下面的方法來恢復降到1.6
1.打開windows的Preferences,把Compiler compliance level 設置到1.6

然後會顯示讓你配置JRE

 
在配置jre中添加jre的目錄,然後選定

這裏,我們在Eclipse裏面設置好了JRE6,以及編譯使用的JDK,但還不可以
 
接下來要設置一下你的項目,打開Project Properties,Add Library 然後Next,接下來會要你選擇JRE的路徑

 
這裏我們直接選擇剛剛在windows Preferences設置好的JRE6,然後Finish即可

 
此時你會發現更多的紅叉叉,所有文件都出現紅叉叉了,讓我們把他們消除掉,這次很簡單,剛剛重置JRE的時候,吧安卓也重置掉了

把安卓ADK勾上就可以了
 
【三 安裝Eclipse和CDT】
 
這裏我直接用這一個,帶CDT插件,已經有Eclipse的同學可以去下載一個CDT
Eclipse解壓就可以直接使用了,這裏不墨跡
Eclipse C++版本下載地址 http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr2
 
【四 安裝ADT】
兩種安裝方法,一種在線安裝,一種下載安裝,網速問題,我傾向於下載安裝。
注意,請下載1.7及以上版本的ADT,這裏使用1.8的版本
在Help裏面,選擇Install New Software...

 

然後選擇Add,如果是在線安裝,在Location裏面填https://dl-ssl.google.com/android/eclipse/
(不行的話,把https改爲http試試)
如果是下載安裝,先把ADT下載到本地,然後按Archive選擇ADT的路徑,點 ok,勾上Developer Tools開始安裝
ADT 1.8的地址:http://dl.google.com/android/ADT-18.0.0.zip
PS。這個安裝需要一段時間.....不要以爲它死機了,掛了,如果你的機器或者網絡不給力,讓你感覺到不耐煩
請不要強制關閉它....否則,你可能要看接下來的錯誤排除
安裝完畢之後重啓Eclipse,然後會提示你安裝ADK

 
 
如果你非常不幸安裝了1.6以及以前版本的ADT,或者強制中斷了它的安裝....那麼你需要把它卸掉

它將無法創建安卓項目...,而卸載,也是一個麻煩的事情
首先,需要把這個插件刪除,在Help的About找到對應的ADT,然後刪除

接下來從軟件更新列表中,刪除我們的ADT

 
【五 安裝ADK】
安裝完ADT之後,重啓Eclipse會提示你安裝ADK,你可以指定路徑,或者下載安裝
可以在這個地址下載ADK http://developer.android.com/sdk/index.html
如果是下載的話,建議下載2.1,他的兼容性比較好,本地的話,指定ADK解壓後的路徑即可

 
【六 安裝NDK】
到這裏爲止,我們已經可以使用Eclipse來編寫安卓程序了,但我們的目的是用C++編寫cocos,要達到這個目的,還需要最後一步——NDK
使用NDK有兩個目的,第一個是將我們的C++代碼編譯成鏈接庫,這裏的鏈接庫是Linux下的so或者a文件,不同於windows的dll
第二個目的是Jni,Java需要通過Jni來調用我們的C++代碼
下載地址爲:http://dl.google.com/android/ndk/android-ndk-r7-windows.zip
下載完畢之後解壓,這裏給出最簡單的步驟,在編譯的過程中會碰到各種問題,這裏也將一一解答
 
首先我們要創建一個Android項目

使用最新版本的Cocos2d-x,我們用他的HelloWorld來做試驗

項目打開之後,,,,這裏發現一個錯誤,沒有setEGLContextClientVersion這個方法,這裏,暫時把它註釋掉吧
看意思應該是設置OpenGL ES的版本....反正默認的應該可以

然後看到控制檯輸出一句話

這裏在Application.mk加上APP_PLATFORM :=android-4就可以了

接下來我們要把NDK加進來,讓NDK來編譯我們的C++
 
指定ndk-build.cmd來編譯我們的項目,下面的工作路徑將作爲參數傳入給ndk-build.cmd,
我們選擇項目的路徑,它會自動編譯jni子目錄下的Android.mk
 
這時候如果是cocos2d-1.0.1-x-0.13.0-beta以及之前的版本,是可以進行編譯的,但如果是之後的版本,有可能出現如下錯誤
 
Android.mk引用了一個模塊,cocos2dx模塊,而NDK沒有找到它,所以報了這個錯,
之前的版本是直接包含cocos2dx模塊的Android.mk的,所以不會報錯
而這裏使用了import,我們也可以使用之前版本的方法來包含它,但貌似import比之前的方法要更好一些
錯誤信息提示我們,可以通過設置NDK_MODULE_PATH環境變量,這裏很有可能設置錯誤
一般,一個Android.mk包含一個或多個模塊,當你要import cocos2dx模塊時,
他會在這個路徑下% NDK_MODULE_PATH\cocos2dx尋找Android.mk文件
所以我們編輯我們的Builder

添加NDK_MODULE_PATH變量,注意要寫兩個路徑,用分號分開
D:\SDK\cocos2d-2.0-rc0a-x-2.0;D:\SDK\cocos2d-2.0-rc0a-x-2.0\cocos2dx\platform\third_party\android\prebuilt
因爲cocos2dx還import了其他幾個module,第二個路徑制定了第三方的module,設置完就可以進行編譯了

我用的是最新的2.0,有些頭文件沒找到,一些類型也有問題....密密麻麻地近百個錯誤。。。
我們試着用低一點的版本吧
 
接下來又出現了一個找不到靜態庫的問題

把<NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi/目錄下的libgnustl_static.a
拷貝到obj/local/armeabi/libgnustl_static.a目錄下,解決
 

最後生成的apk放在bin目錄下
PS.資源文件需要放在assets下,ADT會將它打包到apk中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章