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

如果你像我一樣不幸,裝上了1.7,可以用下面的方法來恢復(fù)降到1.6
1.打開windows的Preferences,把Compiler compliance level 設(shè)置到1.6
然后會顯示讓你配置JRE

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

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

這里我們直接選擇剛剛在windows Preferences設(shè)置好的JRE6,然后Finish即可

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

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


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

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

它將無法創(chuàng)建安卓項(xiàng)目...,而卸載,也是一個(gè)麻煩的事情
首先,需要把這個(gè)插件刪除,在Help的About找到對應(yīng)的ADT,然后刪除

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

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

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

使用最新版本的Cocos2d-x,我們用他的HelloWorld來做試驗(yàn)

項(xiàng)目打開之后,,,,這里發(fā)現(xiàn)一個(gè)錯(cuò)誤,沒有setEGLContextClientVersion這個(gè)方法,這里,暫時(shí)把它注釋掉吧
看意思應(yīng)該是設(shè)置OpenGL ES的版本....反正默認(rèn)的應(yīng)該可以

然后看到控制臺輸出一句話

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

接下來我們要把NDK加進(jìn)來,讓NDK來編譯我們的C++

指定ndk-build.cmd來編譯我們的項(xiàng)目,下面的工作路徑將作為參數(shù)傳入給ndk-build.cmd,
我們選擇項(xiàng)目的路徑,它會自動(dòng)編譯jni子目錄下的Android.mk

這時(shí)候如果是cocos2d-1.0.1-x-0.13.0-beta以及之前的版本,是可以進(jìn)行編譯的,但如果是之后的版本,有可能出現(xiàn)如下錯(cuò)誤

Android.mk引用了一個(gè)模塊,cocos2dx模塊,而NDK沒有找到它,所以報(bào)了這個(gè)錯(cuò),
之前的版本是直接包含cocos2dx模塊的Android.mk的,所以不會報(bào)錯(cuò)
而這里使用了import,我們也可以使用之前版本的方法來包含它,但貌似import比之前的方法要更好一些
錯(cuò)誤信息提示我們,可以通過設(shè)置NDK_MODULE_PATH環(huán)境變量,這里很有可能設(shè)置錯(cuò)誤
一般,一個(gè)Android.mk包含一個(gè)或多個(gè)模塊,當(dāng)你要import cocos2dx模塊時(shí),
他會在這個(gè)路徑下% NDK_MODULE_PATH\cocos2dx尋找Android.mk文件
所以我們編輯我們的Builder

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

我用的是最新的2.0,有些頭文件沒找到,一些類型也有問題....密密麻麻地近百個(gè)錯(cuò)誤。。。
我們試著用低一點(diǎn)的版本吧
接下來又出現(xiàn)了一個(gè)找不到靜態(tài)庫的問題

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

最后生成的apk放在bin目錄下
PS.資源文件需要放在assets下,ADT會將它打包到apk中