原文出處:http://www.cnblogs.com/ybgame/archive/2012/06/07/2540693.html
【一 寫在前面】
環境搭建的順序是這樣
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中