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

來源:互聯網
上載者:User

轉自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.61.開啟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的同學可以去下載一個CDTEclipse解壓就可以直接使用了,這裡不墨跡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.zipPS。這個安裝需要一段時間.....不要以為它死機了,掛了,如果你的機器或者網路不給力,讓你感覺到不耐煩請不要強制關閉它....否則,你可能要看接下來的錯誤排除安裝完畢之後重啟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中

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.