1. 程式人生 > >cocos2dx開發-讓例子(新建cocos專案)在android機器上跑起來

cocos2dx開發-讓例子(新建cocos專案)在android機器上跑起來

新建Cocos專案

解壓原始碼得到資料夾cocos2d-x-3.2alpha0

進入目錄cocos2d-x-3.2alpha0\tools\cocos2d-console\bin執行

python cocos.py new BuckGameCC -p com.cocos2dx.BuckGameCC -l cpp -d ..\..\..\

這樣在cocos2d-x-3.2alpha0目錄下得到資料夾BuckGameCC

新建quickcocos專案

下載並解壓得到目錄quick-cocos2dx-x-2.2.4-release目錄

這個版本player.exe新建專案功能不能用,用命令列建立空專案:bin目錄中執行命令

create_project -p com.quick2dx.buckgame -o ../buckgame

得到資料夾quick-cocos2dx-x-2.2.4-release\buckgame,以後所有的任務就是修改這個目錄中的scripts目錄下的lua檔案,根據需要也可能需要修改sources中的c++

生成專案vs2012除錯需要修改除錯目錄,否則會找不到lua,$(ProjectDir)改為$(ProjectDir)..


碰到問題與解決方案

工作需要學習移動開發了,換個平臺真是考驗,讓例子在android上跑起來也不容易

直接下載adt-bundle-windows-x86-20140321,照著android官方教程用java開發程式是沒問題的,但是想把cocos2dx的c++例子跑起來費了不少周折。

照著cocos2dx中文文件一步一步做,如果完全照做應該問題也不大,先說說因為某些步驟沒有做好出現的問題:

1. ndk版本不對,32位系統與64位系統一定要確定沒下錯

2. 解壓後的目錄D:\android\android-ndk-r9d裡面檔案大小都是0,顯然出問題了

如果編譯build_native.py的時候有問題,一般都是ndk出問題了。

3. androidSDK版本一定要有,下載的如果是幾百M的話通常只有最新版本sdk,如果是5G的應該比較全,也有可能不夠新,可以用sdkmanager檢視。

最後匯入到eclipse以後,有錯誤,需要把cocos\platform\android\java\src裡面的org目錄複製到當前專案的src目錄下。

英文文件裡面的問題解決方案很好,如果出問題可以確定下這3步有沒有問題:

If you get errors in the Eclipse when you imported the Android project. Don't worry, just import the libcocos2dx project will get ride of it.
If you imported all the projects and the errors remains, you might need to build the libcocos2dx project manually and to see whether there is a libcocos2dx.jar file under the bin directory.
If you installed the project in your Android phone but it crashed when launching. You should make sure there is a libxxx.so file under the libs/armeabi directory.。

但是即使完全按照文件做並且不出問題,也很難一帆風順的跑起來

比如,import libcocos2dx以後,還是提示找不到Cocos2dxActivity,因為依賴關係有問題,解決方法:專案右鍵-property-android-library,把沒用的刪掉,把libcocos2dx import進來。

兩種執行android裝置程式方法

環境搭好以後,對於cocos2d-x-3.2alpha0,有2種方法可以跑起來,其實原理一樣:

編譯執行例子程式:

1.在cocos2d-x-3.2alpha0/目錄中執行python setup.py,確保環境變數沒問題

2.在cocos2d-x-3.2alpha0/build目錄中python android-build.py -p 10 cpp-tests,cpp-tests也可以是cpp-empty-test等例子程式

3.在cocos2d-x-3.2alpha0/tests/cpp-tests/proj.android/bin中執行adb install CppTests-debug.apk 

從例子程式中複製:

1.在cocos2d-x-3.2alpha0/tools/cocos2d-console/bin目錄執行python cocos.py new test -p com.coco2dx.org -l cpp -d ./testfolder,新建一個叫做test的專案,位於當前目錄的testfolder中。

2.在cocos2d-x-3.2alpha0/tools/cocos2d-console/bin/testfolder/MyCppGame\proj.android中執行python build_native.py,這樣只是編譯,因為沒有設定-p引數,還需要將專案匯入到eclipse才可以生成bin目錄,如果希望直接編譯生成.apk檔案,只需加引數-p 10即可。

python檔案分析除錯

對於build_native.py,可以通過print命令輸出資訊進行除錯,也可以使用python自帶的IDLE進行除錯,除錯過程中可能會提示錯誤,因為python要求不能有tab,需要用空格表示縮排,按照提示操作即可:全選-Format-Untablity Region。還可能提示__file__不能識別,可以將os.path.dirname(os.path.realpath(__file__))替換為os.getcwd()。

IDLE的除錯方法是,Run-Python Shell,在開啟的Shell中Debug-Debugger,然後再IDLE中Run-Run Module(F5),然後就可以在剛才開啟的Debugger中進行除錯。

容易發現,build_native.py執行的命令是D:\android\android-ndk-r9d\ndk-build -j4 -C D:\android\cocos2d\cocos2d-x-3.2alpha0\tools\cocos2d-console\bin\test\MyCppGame\proj.android NDK_DEBUG=1

而對於python android-build.py -p 10 cpp-tests,IDLE中除錯需要新增sys.argv=[sys.argv[0],'-p','10','cpp-tests'],作為引數,除錯完以後註釋掉。執行的命令以此是

D:\android\android-ndk-r9d\ndk-build -j4 -C D:\android\cocos2d\cocos2d-x-3.2alpha0\build\..\tests/cpp-tests/proj.android NDK_DEBUG=1 NDK_MODULE_PATH=D:\android\cocos2d\cocos2d-x-3.2alpha0\;D:\android\cocos2d\cocos2d-x-3.2alpha0\external;D:\android\cocos2d\cocos2d-x-3.2alpha0\cocos

D:\android\adt-bundle-windows-x86-20140321\sdk\tools/android update lib-project -t android-10 -p D:\android\cocos2d\cocos2d-x-3.2alpha0\cocos/platform/android/java

D:\android\adt-bundle-windows-x86-20140321\sdk\tools/android update project -t android-10 -p D:\android\cocos2d\cocos2d-x-3.2alpha0\tests/cpp-tests/proj.android -s

ant clean debug -f D:\android\cocos2d\cocos2d-x-3.2alpha0\tests/cpp-tests/proj.android\build.xml -Dsdk.dir=D:\android\adt-bundle-windows-x86-20140321\sdk

c++編譯

ndk編譯相關可以從ndk文件overview.html開始看。 ndk-build.cmd執行命令"%NDK_ROOT%prebuilt/%NDK_WIN_HOST%/bin/make.exe" -f "%NDK_ROOT%build/core/build-local.mk" SHELL=cmd %* 對於windows系統,為"%NDK_ROOT%prebuilt/windows/bin/make.exe" -f "%NDK_ROOT%build/core/build-local.mk" SHELL=cmd %* 即make:build-local.mk

ndk-build以後會增加3個目錄:assets、libs、obj,

ant打包

ant clean debug -f D:\android\cocos2d\cocos2d-x-3.2alpha0\tests/cpp-tests/proj.android\build.xml -Dsdk.dir=D:\android\adt-bundle-windows-x86-20140321\sdk

build.xml檔案裡面設定projectname,命令列中設定了sdk.dir,最後呼叫${sdk.dir}/tools/ant/build.xml。 build.xml可以用eclipse開啟:Window-Show view-ant,在ant介面點選Add buildfiles新增要檢視的build.xml 具體build過程網上有,比如http://www.oschina.net/question/54100_30501

相關推薦

cocos2dx開發-例子新建cocos專案android機器起來

新建Cocos專案 解壓原始碼得到資料夾cocos2d-x-3.2alpha0 進入目錄cocos2d-x-3.2alpha0\tools\cocos2d-console\bin執行 python cocos.py new BuckGameCC -p com.cocos2

微信公眾號開發---步驟1生成java專案

登陸測試賬號 生成java專案 <code class="hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-bo

ios專案開發天氣預報專案:hmacsha1 例子

- (NSString *)hmacsha1:(NSString *)text key:(NSString *)secret { NSData *secretData = [secret dataUsingEncoding:NSUTF8StringEncoding]

基於虛擬機器Linux作業系統專案開發日報表2018.10.9

1.學習了fopen、fwrite、fread、fcopy等相關函式和指令。 2.read,write和fread,fwrite的區別:read,write屬於Linux系統呼叫,fread,fwrite屬於C語言標準庫。使用系統呼叫會影響系統的效能,在程式中儘量減少系統呼叫的次數,並且讓每次系統呼叫完成儘可

基於虛擬機器Linux作業系統專案開發日報表2018.10.18

完善後的開發板除錯步驟指令:【1】輸指令檢視地址,板子及虛擬機器都執行。:Ifconfig 。若改地址:Ifconfig eth0 192.168.1.xxx(不大於255,不一樣的數字)。【2】板子及虛擬機器執行匹配:Ping 192.168.1.xxx。【3】【虛擬機器介面:】建立test檔案,並改密碼:

Hadoop專案開發環境搭建Eclipse\MyEclipse + Maven

寫在前面的話     可詳細參考,一定得去看   我這裡,相信,能看此部落格的朋友,想必是有一定基礎的了。我前期寫了大量的基礎性博文。可以去補下基礎。 步驟一:File  ->  New  -> Project   ->  Maven Project

Zookeeper專案開發環境搭建Eclipse\MyEclipse + Maven

寫在前面的話     可詳細參考,一定得去看   我這裡,相信,能看此部落格的朋友,想必是有一定基礎的了。我前期寫了大量的基礎性博文。可以去補下基礎。   步驟一:File  ->  New  -> Project   ->  Maven Project 

Hive專案開發環境搭建Eclipse\MyEclipse + Maven

寫在前面的話     可詳細參考,一定得去看   我這裡,相信,能看此部落格的朋友,想必是有一定基礎的了。我前期寫了大量的基礎性博文。可以去補下基礎。 步驟一:File  ->  New  -> Project   ->  Maven Project 

從其他專案複製cs類檔案到新專案後無法引用問題解決方法開發環境vs2010,asp.net專案

相信很多.net開發員都遇到過類似這樣的問題:之前開發過的專案中的部分類對現有專案又有,因此想把他們複製到新專案中來使用,以減少程式碼編寫量(當然,之前的程式如果能夠完全滿足新專案,可以直接生成dll,然後引入到新專案即可,這種情況就很好解決)。但當我們把這些cs檔案複製到

Android Studio 初步認識新建一個專案並編譯

Android Studio釋出已有一段時間了,一直沒去了解它,最近在和別人討論的時候談到了它,就趁著週末的時間瞭解了一下。個人的第一感覺是介面華麗(嗎),複雜。沒有Eclipse容易上手。花了很久才搞明白一些基本的東西。怎麼新建工作區間、怎麼新建專案、怎麼編譯專案、怎麼

COCOS2DX-LUA 指令碼開發之十三】解決lua專案編譯Android出現get data from file failed、Cocos2dxActivity cannot be 路徑等問題

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) CCString* pstrFileContent = CCString::createWithContentsOfFile("himi.lua"); if (pstrFi

thrift開發例子---python為例

1.編寫thrift介面檔案 2.thrift --gen 開發語言 thrift介面描述檔案 如:thrift  --gen cpp student.thrift thrift  --gen py student.thrift 3.利用生成的檔案程式碼進行開發 1.簡單

二維碼解碼器Zbar+VS2010開發環境配置使用opencv庫

nbsp () imread cfg 如何配置 lib eight ann dev Zbar條碼解碼器是一個開源的二維碼(包括條形碼)解碼器,可以識別來至於視頻流,圖像文件、手持掃碼器和視頻設備(如攝像頭)等二維碼識別,支持EAN-13/UPC-A, UPC-E, EAN-

web前端開發面試題未完待續

tex ora 相對 設置 erl 思路 實現 多列 寬度 一、HTML與XHTML的不同:1)XHTML元素必須被正確地嵌套 2)元素必須被關閉 如:<h1>……&l

uCOS-II的學習筆記共九期例子共六個

操作 第七篇 wip target 恢復 第一篇 ont load -i 源:uCOS-II的學習筆記(共九期)和例子(共六個) 第一篇 :學習UCOS前的準備工作http://blog.sina.com.cn/s/blog_98ee3a930100w0eu.htm

MySQL遇到經典例子--遇到就寫

set 標題 sql per 經典 cnblogs spa fse mysql 1,一般的搜索只會搜索標題,也有特殊的情況,就是標題和內容一起搜索! 1 -- 模糊搜索只是搜索標題 2 $sql = "select count(*) as sum from publ

前端基於react,後端基於.net core2.0的開發之路番外篇 後端使用T4模板,生成某些類

bsp 。。 bubuko 按鈕 uil out eva 下載地址 所有 1.介紹 因為開發過程中,有部分類是你加一個模型,就需要去改動的,每次加非常的煩,或者有些類,你只用到了他基類的方法,但是你還必須建一個文件才能調用他基類的方法,也很煩。 這個時候,T4就非常有用了。

cef3開發環境編譯修改navigator.platform

可能 頁面 32位 ++ pla 效率 交流 進行 tor 最近研究模擬各種平臺點擊,剛開始使用selenium,但是速度實在不敢恭維,而且在開代理的情況下,頁面經常超時,超時就無法繼續進行點擊任務,只能重頭開始,效率極其低。

HTML5+Canvas開發詳解第2版.pdf

繪圖 blog ipa img script 必備 交互式 src 教程 通過HTML5+Canvas開發詳解(第2版),你將學到如何使用Canvas進行繪圖、渲染文字、處理圖像、創建動畫,而這些是開發交互式Web遊戲的必備知識。 本書針對Canvas和HTML5技

python2.7練習小例子二十六

mat list num 題目 stdout AC number python2.7 打印 26):題目:給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。 程序分析:學會分解出每一位數。 程序源代碼: #!/usr/b