Cocos2d-x 3.2 項目源代碼從Mac打包到安卓教程

  • 當我們用Xcode寫好一個項目的源碼之後,如何將它導入到安卓手機中呢?下面我來給大家一步一步講解:

    首先,我們打開終端,cd到Cocos2d-x 3.2文件夾中(注意不是你寫的項目文件夾,而是官方項目源碼。下載地址http://cn.cocos2d-x.org/download/),然後執行如下命令:

    ./setup.py

    這時大家會看到它在Check NDK,Android_SDK,ANT的路徑,如果先前沒有設置的話再執行如下命令:

    vi /Users/donliu/.bash_profile

    注意!!!vi後面的路徑是你自己的,在執行完第一條命令後他會告訴你地址,直接複製粘貼就好了。

    執行完後大家會看到我們用vi打開了一個文件,現在我們在對其中加入NDK,Android_SDK,ANT的路徑。

    當然加入之前我們要先下載,可能有些資源需要***(什麼你不會***?不會***你當什麼程序員!)。

    ANT下載地址:http://ant.apache.org/

    Android_SDK下載地址:https://developer.android.com/sdk/index.html?hl=i

    NDK下載地址:https://developer.android.com/tools/sdk/ndk/index.html

    另:若NDK版本是r10編譯時說沒有找到tool chain的話就換成r9c吧。

    全部下載完成後將一下代碼導入到剛剛用vi打開的文件中(什麼你不會用vi?!不會用vi你當什麼程序員!用法自行谷歌!):

    export ANDROID_SDK_ROOT=/Users/donliu/Desktop/cocos2dxandroid/adt-bundle-mac-x86_64-20140702/sdk

    export NDK_ROOT=/Users/donliu/Desktop/cocos2dxandroid/android-ndk-r9c

    export ANT_ROOT=/Users/donliu/Desktop/cocos2dxandroid/apache-ant-1.9.3

    注意等號後面的是你自己的路徑。(注意ANDROID_SDK_ROOT後面的路徑不是adt,而是裏面的sdk)。

    好,這樣一來我們的先前工作就算是佈置完畢了。以後再打包的時候不用再重複以上步驟了(廢話我們知道!快講怎麼編譯啊!)。

    OKOK,不要急不要急。

    下一步,我們打開剛剛下好的SDK裏的eclipse,左上角File,Import,Android裏的Existing Android Code Into Workspace。

    右邊Browse,選擇你寫的項目源碼文件夾,進入裏面的proj.android文件夾,點擊Open,然後絕對不要選Copy projects into workspace,直接Finish。

    這是在我們的左側的Package Explorer裏我們可以看到項目名Project了。 但是上面有個紅叉,由於強迫症我們首先把紅叉幹掉。

    在Finder中找到項目源碼文件夾,依次進入cocos2d->cocos->platform->android->java->src->org->cocos2dx

    複製整個lib文件夾到項目源碼文件夾下proj.android->src->org->cocos2dx下。讓他lib和cpp在一個目錄裏出現。

    OK,我們關掉Finder,切回eclipse,在整個項目上右鍵Refresh然後神奇的一幕出現了:紅叉消失了!變成了歎號。好我們開始無視歎號(說好的強迫症呢? 尼瑪你寫程序的時候把每個Warning都幹掉?什麼?是的?好吧給大神跪了。)

    下一步,打開jni文件夾找到Android.mk,雙擊它,在右邊看到其中有一行是:

    LOCAL_SRC_FILES

    我們對它後面的代碼進行更改。默認的後面只有:

    hellocpp/main.cpp \

    ../../Classes/AppDelegate.cpp \

    ../../Classes/HelloWorldScene.cpp

    但顯然你不可能在Classes下只有這麼幾個.cpp(什麼你就在HelloWorldScene裏寫了點東西其他沒懂?好吧。),於是我們對其進行更改,改成你Classes下的所有.cpp(注意不寫.h),格式要和他給的一樣。比如我的是:

    LOCAL_SRC_FILES := hellocpp/main.cpp \

    ../../Classes/AppDelegate.cpp \

    ../../Classes/Select.cpp \

    ../../Classes/Game.cpp \

    ../../Classes/Wall.cpp \

    ../../Classes/Ball.cpp

    改完之後記得保存。

    下面一步我們來添加Resource。在Finder中打開你的項目源碼文件夾,把Resource裏的全部資源拷貝到proj.android->assets文件夾下(沒有這個文件夾的話就建立一個)。

    同樣,切回eclipse後刷新一下。

    然後我們打開jni文件夾下的Application.mk,將其內容改爲如下:

    APP_STL := gnustl_static

    APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1 -std=c++11 -fsigned-char

    記得保存!筆者有一次調了半天不行結果一看是因爲沒保存!哭瞎了簡直……

    OK,到了最關鍵的一步了,編譯!打開終端,cd到項目文件夾,執行如下命令:

    cocos compile -p android

    回車開始編譯。編譯過程會比較慢,大家可以泡杯咖啡等待一下……

    如果在

    [armeabi] Compile++ thumb: cocos2dcpp_shared <= main.cpp

    [armeabi] Compile++ thumb: cocos2dcpp_shared <= AppDelegate.cpp

    這種地方報錯,一定是因爲你的Android.mk裏面寫錯了,好好檢查下。

    如果檢查好了沒有錯,那麼仔細看看錯誤提示,改一下對應的cpp源碼,筆者也就遇到過一次記不大清了。

    等終端運行結束後,發現最後有錯誤不用管,只要有一條:

    [armeabi] Install        : libcocos2dcpp.so => libs/armeabi/libcocos2dcpp.so

    只要有這條,就說明編譯成功了。我們切回eclipse,刷新一下項目,檢查libs->armeabi下有沒有 libcocos2dcpp.so,如果有的話OK,直接給電腦插上安卓手機右鍵項目,Run As->Android Application 然後選擇自己的手機開始測吧!


    可能有以前沒打包過APK的,這裏再講一下如何打包成APK。

    右鍵項目,Export,Android->Export Android Application 點擊Next,默認是右鍵點到的項目,繼續Next,這裏有一個Keystore selection,第一次打包的同學選擇Create new keystore,然後Browse隨便一個文件夾(廢話當然要記住放哪兒了),密碼和確認填好,Next。

    接下來同學們就自己填吧,注意Validity要在25以上,Next。

    剩下就不用說了。填好應用名直接Finish就OK了。生成的APK可以直接在安卓手機上安裝。


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