cocos2d-2.0-x-2.0.3 交叉編譯到 android

來源:互聯網
上載者:User

我用的是cocos2d-2.0-x-2.0.3  之前弄了一天也沒成功 今天來了下載了最新的ndk8  更新了sdk 又重新是了一遍 居然成功了,不知道是工具的版本問題還是哪一步出錯誤了,在這裡整理一下:

首先各個工具都下下來配置好,然後將cygwin中的.bash_profile這個檔案開啟 在最後加上ndk的路徑

NDK_ROOT=/cygdrive/c/android-ndk-r8d
export NDK_ROOT

2.找到cocos2dx中的create-android-project.bat這個檔案開啟然後有三個地方需要改

set _CYGBIN=C:\cygwin\bin
set _ANDROIDTOOLS=E:\eclipse\and sdk\tools
set _NDKROOT=C:\android-ndk-r8d

意思很明顯就不多說了

3.修改完畢後運行這個檔案 按照提示步驟建立android的工程然後將裡面的Classes和Resources換成你之前寫好的

4.開啟proj.android這個檔案中的build_native.sh進行編輯  新版的coco2.x 和之前的coco1.x這個檔案不大一樣 2.x的這個改了半天也不好用 我把1.x的直接拷貝過來修改了一下

# set paramsNDK_ROOT_LOCAL=/cygdrive/c/android-ndk-r8dCOCOS2DX_ROOT_LOCAL=/cygdrive/e/cocos2d-2.0-x-2.0.3buildexternalsfromsource=usage(){cat << EOFusage: $0 [options]Build C/C++ native code using Android NDKOPTIONS:   -s        Build externals from source   -h        this helpEOF}while getopts "s" OPTION; do        case "$OPTION" in                s)                        buildexternalsfromsource=1                        ;;                h)                        usage                        exit 0                        ;;        esacdone# try to get global variableif [ $NDK_ROOT"aaa" != "aaa" ]; then    echo "use global definition of NDK_ROOT: $NDK_ROOT"    NDK_ROOT_LOCAL=$NDK_ROOTfiif [ $COCOS2DX_ROOT"aaa" != "aaa" ]; then    echo "use global definition of COCOS2DX_ROOT: $COCOS2DX_ROOT"    COCOS2DX_ROOT_LOCAL=$COCOS2DX_ROOTfiHELLOWORLD_ROOT=$COCOS2DX_ROOT_LOCAL/TestCocos/proj.android# make sure assets is existif [ -d $HELLOWORLD_ROOT/assets ]; then    rm -rf $HELLOWORLD_ROOT/assetsfimkdir $HELLOWORLD_ROOT/assets# copy resourcesfor file in $COCOS2DX_ROOT_LOCAL/TestCocos/Resources/*do    if [ -d $file ]; then        cp -rf $file $HELLOWORLD_ROOT/assets    fi    if [ -f $file ]; then        cp $file $HELLOWORLD_ROOT/assets    fidoneif [[ $buildexternalsfromsource ]]; then    echo "Building external dependencies from source"    $NDK_ROOT_LOCAL/ndk-build -C $HELLOWORLD_ROOT $* \        NDK_MODULE_PATH=${COCOS2DX_ROOT_LOCAL}:${COCOS2DX_ROOT_LOCAL}/cocos2dx/platform/third_party/android/sourceelse    echo "Using prebuilt externals"    $NDK_ROOT_LOCAL/ndk-build -C $HELLOWORLD_ROOT $* \        NDK_MODULE_PATH=${COCOS2DX_ROOT_LOCAL}:${COCOS2DX_ROOT_LOCAL}/cocos2dx/platform/third_party/android/prebuiltfi

裡面主要是配置一些路徑 大家要好好對照下綠色部分 我就是這個檔案配置了好久都沒成功導致後面的怎麼也不行

5.配置Android.mk

主要就配置LOCAL_SRC_FILES這個參數 如果你沒加什麼類庫的話其餘的參數都不用配置 當然製作了一個小遊戲直接用的cocos產生的類  所以這個檔案壓根都不用改

LOCAL_SRC_FILES := hellocpp/main.cpp \                   ../../Classes/AppDelegate.cpp \                   ../../Classes/HelloWorldScene.cpp

6.運行cygwin  輸入 cd $NDK 斷行符號

然後用/cygdrive/後面加檔案位置定位到 你的build_native.sh這個檔案位置

然後輸入 ./build_native.sh

就會將你的c++代碼編譯成android的class檔案並將資源檔什麼的都拷貝過去

7.倒入這個項目到eclipse中

裡面可能會報紅叉,比如找不到庫檔案 這是要把cocos2d-2.0-x-2.0.3\cocos2dx\platform\android\java\src這個目錄下的lib包拷貝到項目中

還有其他的錯誤可是要點擊項目右鍵androidtools->fix project一下 然後把java  compiler換成1.6的

還有就是類中產生的這句話不要改

static {

        System.loadLibrary("game");

   }

不然後報java cocosdx Couldn't load cocos2dx: findLibrary returned null 這個錯誤

然後運行就應該成功了

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.