Cocos2d-X Android移植

官網教程

D:\Cocos2d-X\cocos2d-x-2.2.0\samples\Cpp\HelloCpp\proj.android\README.md
這又是一個教程,不過是在項目裏面的而已,與網站那個有點區別

使用的工具版本:
Win7旗艦版
VS2012
Cocos2d-X 2.2.0
Python 2.7.5
Cpp
Cygwin 2.830
Android NDK r9b
Android SDK(adt-bundle-windows-x86-20131030.zip)
jdk(Java SE Development Kit 7u45)
Eclipse Standard 4.3.1
CDT 8.2.1 for Eclipse Kepler
ADT 22.3.0 


VS2012:

去官網找旗艦版,然後再百度CDKey就好了啦
下載並安裝,需要什麼插件之類的,自己搞定,反正對於運行遊戲沒有影響


Cocos2d-X 2.2.0

去官網下該版本,然後解壓縮,這不是廢話麼
不要放在C盤裏面,否則可能會造成某些特權相關的問題


Python 2.7.5:

下載安裝,環境路徑什麼的自己留意一下就好了啦
至於如何生成新項目,自己去找一下吧


Cpp:

這裏我們使用新建的是CPP項目,Lua項目應該差不多的吧
新建項目,然後讓VS2012運行一遍看看吧


Cygwin 2.830

去官網下載


運行後選擇從網絡下載更新,沒什麼好說的了吧

安裝地址和對象

這是下載時候的緩存路徑,會在裏面新建一個文件夾
可以備份,供以後使用

沒什麼好說的了吧

選擇從哪個地址下載,看着辦,慢的話就取消重新再來

這地址很給力的說

這樣子選擇後就會保持原有的啦,就可以專心下載需要的


不過我們還是這樣子選擇,先把默認的給裝了先吧


在默認設置下,只需選擇Devel(點擊列表中Devel,將後面的Default改爲Install),其它均爲默認狀態。(其實NDK需要的不多,主要autoconf2.1、automake1.10、binutils、gcc-core、gcc-  g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make )

好了,這樣子我們這次就可以只安裝自己的啦


運行cygwin,在彈出的命令行窗口輸入:cygcheck -c cygwin命令,會打印出當前cygwin的版本和運行狀態,如果status是ok的話,則cygwin運行正常。

然後依次輸入gcc –v,g++  --version,make –version,gdb –version進行測試,(注意空格和-)如果都打印出版本信息和一些描述信息,這說明cygwin安裝成功了


把 D:\cygwin\bin 配置到系統path環境變量中去


Program bash is not found in PATH

Program "sh" not found in PATH

這樣子就可以解決這個問題了啦


很愛怪的問題,不管是桌面生成的快捷方式還是菜單上得均無效

D:\cygwin\var\run\utmp -i /Cygwin-Terminal.ico -

地址問題?

D:\cygwin\Cygwin.bat -i /Cygwin-Terminal.ico -

反正我改成這樣子貌似就可以了啦

D:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -

這個地址會更好?



Android NDK r9b:

都快說到厭了啦,去官網下載
下載完解壓到D盤去
然後添加NDK_ROOT到環境變量
D:\android-ndk-r9b
其實在這裏添加主要是爲了Lua項目的移植
這裏添加了之後下面的那些添加NDK_ROOT就不需要了啦


Android SDK(adt-bundle-windows-x86-20131030.zip):

官網風景無限好啊,還是去官網下載吧


裏面一堆垃圾着實令人討厭

解壓完之後,雙擊運行SDK Manager
將會彈出

好像是因爲Android 2.2繼承了android的生成,所以推薦先把2.2給裝了

注意,如果連接不上的話,在C:\WINDOWS\system32\drivers\etc的hosts文件中,最後一行添加74.125.237.1 dl-ssl.google.com
這樣子連接上谷歌就會很快了啦


jdk(Java SE Development Kit 7u45):

去官網下載
很麻煩,每個版本的不會檢查上一個版本,就是說不可以直接覆蓋掉
所以一般地址改成D盤就算了,其它版本地址就無視了吧

裝到一半的時候,會彈出安裝jre,這時候也改成D盤即可

安裝後,配置環境變量:
新建環境變量:JAVA_HOME 值爲:D:\Program Files\Java\jdk1.7.0
新建環境變量:CLASSPATH  值爲:.;%JAVA_HOME%\lib;(注意:點號表示當前目錄,不能省略)
在系統變量Path的值的前面加入以下內容:%JAVA_HOME%\bin;(注意:這裏的分號不能省略)到這裏,JDK安裝完畢。 
單擊“開始”—>“運行”—>輸入:cmd命令,在CMD窗口中輸入:java -version  出現如下界面,就表示安裝成功:

不怕麻煩的話最好分別也試一下java和javac


Eclipse Standard 4.3.1:

老規矩,去官網下(怎麼老是有人不愛去官網下載呢,真是奇葩)
下載完之後解壓到D盤去


首次運行需要設置這玩意,超煩的說

打開後
點擊Help,選擇Install New SoftWare


CDT 8.2.1 for Eclipse Kepler:

去官網下載吧,記得對應自己的Eclipse版本號,否則出事了我可不管啊

打開插件安裝界面
點擊這玩意
剛剛下載的CDT壓縮文件是不用解壓的,直接選擇
別忘了勾選上啊
點擊next開始安裝吧
轉完就重啓吧 yeah


ADT 22.3.0 :

官網提供了網址,不用下載,方法類似上面
https://dl-ssl.google.com/android/eclipse/
如果不行的話,將https改成http


重啓後會彈出告示Android SDK找不到之類的提示
如上設置即可,就是加上自己sdk的路徑


開始Android移植:


首先需要導入自己之前新建的工程


D:\Cocos2d-X\cocos2d-x-2.2.0\projects\Hello\proj.android
這是導入的路徑,根據自己新建的項目來更改
Copy projects into workspace不要選,否則的話需要手動複製某些缺少的文件到workspace,不推薦

修改Android.mk

具體要如何修改,去查看寫過的關於Android.mk的文章

可以看到這裏提示我們定義NDK_ROOT

右擊自己導入的工程,選擇Properties

路徑是自己ndk的根目錄,記住NDK_ROOT的名稱不能更改
Add to那個我暫時還沒知道有什麼區別

再看看這裏,上面的是選擇啓動的版本
下面是Library,因爲我們還沒有導入,所以是錯誤狀態

這裏也有提示


現在進行導入
D:\Cocos2d-X\cocos2d-x-2.2.0\cocos2dx\platform\android
這是路徑


導入之後就沒有這個問題了啦


我們需要新建一個安卓模擬器

這個根據需求來建吧

好了,現在基本的都搞好了
這時候選擇Run-Run as Android Application
如果沒有什麼問題的話,Cygwin應該會開始編譯(第一次運行的時候,運行過一次,沒有更改就不會重新編譯的了)
如果第一次運行沒有進行編譯,要不就是出錯,要不就是因爲NDK_ROOT沒有設置好

這是最基本的輸出信息
這是已經編譯過一遍之後的輸出信息


另外寫一下官網的做法(變流暢了?只是碰巧而已麼?使用bluestacks的時候,原本左上角會有載入什麼之類的顯示的,現在這樣子之後就貌似沒有了?):

Add this line `none /cygdrive cygdrive binary,noacl,posix=0,user 0 0` to `Cygwin\etc\fstab` file.
不知道第一行要不要刪掉好
作用不明

 Path Variable `COCOS2DX`: 
* Eclipse->Preferences->General->Workspace->**Linked Resources**
* Click **New** button to add a Path Variable `COCOS2DX` pointing to the root cocos2d-x directory.
作用不明,發現不寫也行,考慮到裏面有絕對路徑,所以拋棄

C/C++ Environment Variable `NDK_ROOT`: 
* Eclipse->Preferences->C/C++->Build->**Environment**.
* Click **Add** button and add a new variable `NDK_ROOT` pointing to the root NDK directory.
* Only for Windows: Add new variables **CYGWIN** with value `nodosfilewarning` and **SHELLOPTS** with value `igncr`
NDK_ROOT大家都知道的啦
另外兩個可能是爲了去除之前的waring
明顯少了些warning,但是貌似沒有什麼影響?


### Running project from Command Line

    $ cd cocos2d-x/samples/Cpp/TestCpp/proj.android/
    $ export NDK_ROOT=/path/to/ndk
    $ ./build_native.sh
    $ ant debug install

表示上面的真心看不太懂啊,反正我下面的寫法就可以了啦
$ cd /cygdrive/d/Cocos2d-X/cocos2d-x-2.2.0/projects/lua/proj.android
$ export NDK_ROOT=d:/android-ndk-r9b
$ ./build_native.sh

If the last command results in sdk.dir missing error then do: 

    $ android list target
    $ android update project -p . -t (id from step 6)
    $ android update project -p cocos2d-x/cocos2dx/platform/android/java/ -t (id from step 6)

這些沒有什麼好說的了吧


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