1. 程式人生 > >windows下cocos2dx 3.x編譯安卓工程

windows下cocos2dx 3.x編譯安卓工程

軟體準備

  • jdk
  • eclipse+adt(或者adt-bundle,本文就是)
  • android-sdk(adt-bundle自帶)
  • android-ndk
  • ant
保險起見,都裝32位的

建立專案

用python建立cocos2dx 3.x的專案,參看:http://blog.csdn.net/u012234115/article/details/40019185 專案結構:

配置安卓開發環境

1,安裝jdk,sdk,ndk,ant ant是必須的,如果是adt-bundle的話不需要額外裝sdk 2,配置環境變數 JAVA_HOMEC:\Program Files (x86)\Java\jdk1.6.0_45
ANDROID_SDK_ROOTD:\android-sdk      (如果是adt-bundle整合開發包就不用配這個) NDK_ROOTD:\android-ndk ANT_ROOTD:\ant\bin
注意:這裡的幾個環境變數的關鍵字必須是ANDROID_SDK_ROOT NDK_ROOT ANT_ROOT,後面用到 Path %JAVA_HOME%;%ANDROID_SDK_ROOT%;%NDK_ROOT%;%ANT_ROOT%

裝在非系統盤的話就可以配到使用者變量了,否則要配到系統變數

3,cocos2dx setup.py配置

執行cocos2dx 3.x根目錄下的setup.py,確認環境變數配置成功,其實也可以直接在這裡填入目錄讓指令碼自動配置環境變數。


環境變數配置完了如果生效不了可以重啟系統一下

4,匯入到eclipse

import進來python建立的專案proj.android資料夾

src上有個紅叉,有錯誤,缺少cocos2dx的庫


import這個庫

D:\cocos2d-x-3.2\pojects\testAPK\cocos2d\cocos\platform\android\java

如果之前有引入庫的殘留,先在專案的properties->android   裡面把打紅叉的殘留無效lib給remove掉

eclipse裡面配置android sdk路徑,配置目標編譯平臺api

配置Android.mk


配置 AndroidManifest.xml  橫屏改豎屏

開始編譯,直接點選run,eclipse會自動執行 proj.android目錄下的build_native.py編譯安卓工程,生成必須的.so檔案以及最終的apk檔案

(其實此時還有一種方法,用命令列的方式,cd到新建的工程目錄,執行命令 cocos compile -p android -j 4,生成的apk檔案在 專案目錄下 \bin\debug\android,可直接安裝)


注意:cocos2dx 3.2有bug,回報編譯錯誤,Description ResourcePath LocationType return type of out-of-line definition of 'cocos2d::BundleReader::tell' differs from that in the declarationCCBundleReader.cpp/testAPK/cocos2d/cocos/3dline 94C/C++ Problem

開啟那個cpp把一個ssize_t改成long int再編譯就可以了

編譯成功後項目結構裡面那個紅叉就消失了


proj.android\libs\armeabi有安卓編譯需要的libcocos2dcpp.so動態庫,proj.android\bin目錄下有編譯好的apk檔案

最終結果