win8下cocos2dx3.2移植android平臺及代碼打包APK

? cocos2dx程序不能只在VS2012下運行,遲早是要搬運到Android和IOS上的。Windows下移植IOS平臺先擱下不說比較困難,而且只有越獄的蘋果機才可以運行,而且畢竟IOS高端、小眾。這里主要講一下移植Android,windows下cocos2dx打包成APK和在eclipse下運行的方法。
本文接上篇win8下環境配置的博客,在cocos2dx和VS2012的配置完成后( 如果還沒有配置cocos2dx+VS2012的環境,請最好先參考博客進行配置:http://blog.csdn.net/u012200908/article/details/38056917
cocos2dx和VS2012相比配置Android十分簡單。在配置完成之后,這個時候系統變量path中有了cocos2dx的目錄和Python的目錄,這些也是移植Android平臺要使用的。
篇幅長主要是因為筆者網上看過很多教程講的不夠透徹,許多新手看不懂,自己不想這樣。所以這篇博客圖片較多,造成長篇累牘。還請各位讀者見諒。
下面先說一下準備工作配置Android有關的環境,用的東西包含如下:
1、
? ? ? 首先需要JDK,我用版本是1.8.0.11,64位
? ? ? 官網:http://www.oracle.com/technetwork/java/javase/downloads/index.html
? ? ? 可以上網搜一下,或者百度云(百度云共享的為64位,如果有人是win8或者win732位的系統還是按上面的網址去官網下載吧):
? ? ??http://pan.baidu.com/s/1dDzRQBf

2、
Android ADT
? ? ?官網可以直接下最新的(7月2號的版本):
? ? ?http://developer.android.com/sdk/index.html
? ? ? ??我的百度網盤有64位的可以下
? ? ? ? ?http://pan.baidu.com/s/1bn8dwXT
? ? ? ? ? ??
? ? ?解壓到你習慣的目錄下(建議某磁盤根目錄)
? ? ?
如果你想使用我的版本
(14年3月21號的)
以避免可能出現的問題,我認為應該不會有的。。
? ? ?網盤里面也有64位的可以下:
? ? ?http://pan.baidu.com/s/1sj15u1n

3、
Android NDK
? ? ?這個很關鍵,不要下r10版本,會有問題,這個是因為官方的原因。
參見
http://cn.cocos2d-x.org/tutorial/show?id=1187
這里選擇r9d版本,我實在是在官網找不到下載鏈接,因為只看到r10的一堆鏈接,其他版本一個下載鏈接沒找到。。。
最后找到一個網址:
? ? ?https://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip
? ? ?https://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip
? ? ?后綴有64即為64位系統
? ? ?可以去我的百度云下載64位NDK:
? ? ?http://pan.baidu.com/s/1jGsWan8
? ? ?先不急著解壓

4、下載ANT
? ? ?這里使用的是1.9.4的ANT
? ? ?官網直接下載zip包:
? ? ?http://ant.apache.org/bindownload.cgi
? ? ?先不急著解壓
? ? ?
5、現在將NDK和ANT全部解壓到ADT下面去,以方便管理
? ? ?現在ADT下面有
? ? ?NDK
? ? ?SDK
? ? ?Eclipse
? ? ?ANT
? ? ?SDK Manager.exe
? ? ?

這里要強調一下,CMD運行要盡量都在管理員身份運行的情況下,請從查看所有程序,發送一個快捷方式到桌面,每次右鍵以管理員身份運行。然后CD到你要用的目錄。

下面正式開始:

?step 1:
? ? ? 安裝JDK,記住JDK的路徑,這里要強調一點,就是你文件夾路徑里面不可以有空格和中文字符。所以你不要裝在默認的program files里面。建議自己找個地方裝JDK。
? ? ? 計算機-右鍵屬性-高級系統設置-環境變量


點擊進入環境變量,在系統變量下點擊新建
? ? ?JAVA_HOME ? ??C\Java\jdk1.8.0_11//就是你JDK的路徑,這里不需要加分號
? ? ?CLASS_PATH ? ??.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;//前面有個點,請大家注意


再找到path變量,要加三個東西
? ? ?(1)在最前面加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
? ? ?(2)path里面還要再加上Android?SDK下面tools文件夾的路徑。

?????例如筆者的是:C:\adt-bundle-windows\sdk\tools;

?????請使用絕對路徑,加上這個路徑之后,在使用android?list?targets查看sdk版本的時候就不會出現Android不是內部或者外部命令這樣的錯誤。

? ? ?(3)然后把ANT的變量也一起配置一下,有備無患。path中繼續添加 ? ? ANT目錄\bin;//建議直接找到那個目錄然后將路徑復制黏貼到里面,但注意后面要加上\bin




step2:
? ? ?上面的工作完成之后,我們需要再次運行setup.py將NDK_ROOT、SDK_ROOT、ANT_ROOT關聯到cocos。
? ? ?打開CMD,cd到cocos2dx目錄下
? ? ?輸入setup.py,回車。還記得一開始只配置cocos2dx和VS時候的運行結果嗎?
? ? ?結果如下,他會提示你Please enter the path of NDK_ROOT

參照我下面輸入的一個個輸入進去,建議拷貝路徑之后右鍵黏貼,然后回車。(我的路徑有點兒長,沒有改ADT的名字,后來我全部刪除重新調試過,大家可能會發現我的ADT前后不一樣,這個大家知道一下就行了。一定要輸入自己的正確的路徑)
回車就會添加一個變量。到最后ANT_ROOT設置完了之后,這一塊也就完了。然后他會提示你重啟命令提示符或重啟系統,這里重啟下CMD就行了。如果有問題再重啟吧。



可以在關閉之后再次在這個文件夾打開CMD,再次運行setup.py驗證是否生效。
或者輸入set NDK_ROOT、set ANDROID_SDK_ROOT、set ANT_ROOT查看



這里請注意,筆者再次提醒,圖片筆者是兩次截圖,所以路徑有的地方是adt-bundle-windows-x86_64-20140702,后來筆者改用了20140321的版本,造成其他地方路徑是修改了之后的adt-bundle-windows,如果有不便還請諒解一下啦。

step3:
構建Android工程(apk)
下面新建一個工程,這里不做贅述。
工作目錄內,shift + 右鍵 打開CMD
cocos new helloworld -l cpp -p com.losers.game
在工作目錄下創建了一個helloworld項目(這里要注意,如果工作目錄路徑里面有空格建議刪除工作目錄重建,否則會編譯出錯)
在構建APK之前,先打開ADT中的Eclipse,啟動SDK Manager,更新一下SDK,至少保證一個版本的SDK可以使用。但這個版本要新一些,筆者選擇了4.4.2,因為太舊了會有OpenGL的問題,建議大家也更新一下4.4.2,大有用處。這里先說一下,后面具體解釋。
更新SDK的時候可能存在Fetching很慢的問題,請點擊Tools——option——下面的Others中,把第一個選項勾中即可。
相信速度會快很多。而且下載成功率也會大大提高。其他的方法比如修改hosts文件在此不冗述,請大家自己百度一下方法。



? 在確保有至少一個完整可用版本的SDK后,后面要用的是cocos2d-console,compile的命令
? ? ?在helloworld目錄下打開CMD下輸入下列命令查看幫助
? ? ?cocos compile --help或者 cocos compile -h


然后輸入cocos compile -p android -j 4,打包APK。這兒說一下,要在管理員模式下執行命令提示符,以防出現問題。
即編譯當前目錄的安卓工程,可以同時有4個編譯任務,讓4核機器滿負荷跑。
這里當然可以根據你的手機Android版本加上?--ap?數字(10?——?20,目前是這樣的,以后除了新版本數字會增加)這里我選擇了缺省,讓他自己找。因為原理上是可以自己找的,我要全方面判斷是否有問題。

?????版本對應的數字我想在用SDK?Manager的時候大家都會看到

?????如果你不知道,可以在CMD中輸入android?list?targets查看,如下圖

?????筆者SDK只有2.3.3和4.4.2的,對應數字是10和19

然后執行
cocos compile -p android -j 4,打包APK

根據它提示的路徑去找到那個讓我們又愛又恨的APK
跟同學借個手機來跑跑試試。結果如下,版本Android4.0:


這里要說一下,筆者在打包APK的時候遇到了一些問題,說java.exe不是內部或者外部命令,也不是可運行的程序,也不是批處理文件。
? ? ?這個應該是一開始的JAVA環境變量配置有問題造成的,你要看看你的跟java有關的變量路徑里面是否有類似于program files一樣有空格的路徑。如果有,請卸載JDK重裝再別的路徑沒有中文和空格的文件夾里面,然后修改路徑,重啟電腦,以管理員方式運行CMD重試一下,筆者就是這樣解決了問題。

step4:
eclipse下跑程序
? ? ?繼續回到前面打開的Eclipse,將我們要打開的項目給整進來。
? ? ?但在這之前,最好查看NDK和SDK路徑是否正確
? ? ?window——preferences——Android查看SDK和NDK,檢查location是否正確?
? ? ?
? ? ?如果你用的新版本(7月2號版本的)你會發現,臥槽?為啥怎么找NDK都找不到啊?這個原因我也不知道。需要往Eclipse的plugins文件夾下拷貝一個jar包,叫做com.android.ide.eclipse.ndk_23.0.2.1259578.jar
? ? ?這是下載地址:
? ? ?http://pan.baidu.com/s/1i3xbM0d
? ? ?這個NDK里面沒有應該是沒有什么影響的,我是在配置環境出錯的時候病急亂投醫了,找了各種方法,覺得這個還是加上好,所以就說一下。幸虧我用的不是這個版本,不過我的大神舍友說,這個NDK就算空著也不會影響。。。。。
? ? ?
? ? ?下面開始導入我們的項目
? ? ?import-Existing Android Code Into Workspace
? ? ?選擇我們的項目中proj.android文件-Finish
? ? ?這里一定不要勾選copy projects into workspace,否則后果很嚴重,筆者親測。。。。

這個時候程序會有錯誤,是因為類庫沒有引入,以后每次都要引用一下了。你需要找到你創建的項目所在的地方。
我是在C:\cocosworkspace\helloworld\cocos2d\cocos\platform\android\java\src
下面,(就是原項目里面)里面有個org文件夾,復制一下,拷貝到我們用Eclipse打開的helloworld項目的src中去。提示是否重寫,選yes,這樣錯誤就沒有了。


下面重點來了。
? ? ?第一點:我們可以看到,這個地方默認的版本是Android2.3.3,筆者就是在這個地方被困住了兩天兩夜,我新建了2.3.3的AVD,也勾選了Use Host GPU,但就是報相關OPENGL的錯誤。后來我多方查證才知道openGl在Android2.2之后才支持真機,所以默認版本是2.3.3,模擬器版本4.0.3之后才能跑,我只想說,cocos2dx和Android都太(嗶嗶)了(自己和諧一下)。
? ? ?
? ? ?所以這個地方,在項目上右鍵——properties——切換到4.4.2版本,等一會兒Eclipse為我們自動切換。
切換了版本之后,新建4.4.2的AVD,勾選下方的Use Host GPU,這個AVD就是我們要用的模擬器。

第二點:同時這里要注意,如果以后你編寫cocos程序,增加了cpp,你需要到Android.mk文件中將cpp添加進去
下面是Android.mk文件(jnj文件夾下)

? ? ?要在LOCAL_SRC_FILES下面寫上你所有的cpp文件,這里要注意,除了最后一個cpp以外,每個后面都有一個斜杠。


以上都完成之后,啟動AVD運行一下,大家請看~當當當當~
這里我調整成了較寬的AVD。



到此配置就完成了!~~~~~

因為我學cocos2dx的時間也不是很長,只有一個多月,寫這篇博客是一位cocos2dx吧的吧友提出的疑問,我就自己配置了一下,雖然在cocos2dx下做項目,但我是用Xcode和VS2012。打包APK和一直Android平臺是另一位隊友的任務。這位吧友也讓我學到了不少,知道了自己的不足,持續了一個多周總算是把Mac下和windows 8.0下cocos2dx3.2移植Android平臺的教程都寫了出來。如果大家遇到問題或者發現我的博客里面有錯誤請留言,我會盡力給大家解答以及修正博客。

2014.8.6 22:45
Mr.Losers










本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277776.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277776.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277776.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【轉】用Fiddler做抓包分析詳解

1.為什么是Fiddler? 抓包工具有很多,小到最常用的web調試工具firebug,達到通用的強大的抓包工具wireshark.為什么使用fiddler?原因如下: a.Firebug雖然可以抓包,但是對于分析http請求的詳細信息,不夠強大。模擬http…

讀《活著》----余華

這本書所處時代背景盡管與我生活的時代背景不同,但是我仍是被人物的生活所打動。這本書為我們描述了一個擁有一百畝的闊少爺徐福貴因為賭而輸掉全部家產,到經歷將自己的父親,母親,兒子,女兒,女媳&#xff0…

常用數據庫連接和diriver以及默認端口

sqlserver默認端口號為:1433 URL:"jdbc:microsoft:sqlserver://localhost:1433;DatabaseNamedbname" DRIVERNAME:"com.microsoft.jdbc.sqlserver.SQLServerDriver"; mysql 默認端口號為:3306 URL:jdbc:mysql://localhost:3306/…

Mac下cocos2dx3.2移植android平臺詳細教程

本文是cocos2dx移植android的第二篇教程,筆者深深感覺,cocos2dx移植android平臺是永遠的痛啊。。。下面講一下筆者花費一個周研究的Mac OS下的cocos2dx3.2android配置首先要準備的東西(1)下載cocos2dx3.2 http://www.cocos2d-x.o…

robotframework(12)修改用戶密碼(從數據庫查詢短信驗證碼)

一、testcase:修改用戶密碼需要6個參數(短信驗證碼、設置的新密碼、用戶已登錄的userid及用戶唯一標識、接口校驗碼、被修改的手機號),故先準備這些參數 二、用戶登錄請求,(獲取userid、用戶唯一標識&#…

Mac OS使用技巧之二:修改變量Path解決android: command not found

前一陣子,一直在搞Mac OS和win8下cocos2dx移植android平臺的方法。一步步從無到有的慢慢摸索出來。最近發現了一個小問題,有關環境變量配置的寫下來分享給大家。就是我們在windows8下查看已有android SDK的版本,需要在CMD里面輸入&#xff1a…

Jenkins架構

一. Master 和slave.下圖闡述了master-slave交互的架構:在上面這個分布式的構建環境中,Jenkins master主要負責如下:接收構建觸發(比如,一個提交到GitHub后)發送通知(比如,在構建失敗…

【linux】linux命令如何查看文件、文件夾的屬性,包括大小、修改時間、誰修改的...

【linux命令如何查看文件、文件夾的屬性,包括大小、修改時間、誰修改的】1、查看文件大小:#du -sh filename2、查看文件,文件夾屬性:#ls -l filename#ls -ld foldername3、查看文件的三個時間 atime ,ctime, mtime3.1、 mtime(modification t…

Mac OS使用技巧之三:發射無線網絡信號的方法

許多人知道在windows下可以直接借助各種輔助軟件來直接發射wifi信號,比如360wifi,獵豹wifi。或者可以直接在命令行里面設置。許多人卻不知道Mac系統也有方便快捷發射無線信號的功能。下面講一下利用Mac OS發射無線網絡信號的方法。前提:你的電…

關于基本工作素養在職場當中的重要性

各位小伙伴: 今天博主就和大家分享一下,一個優秀的工作素養在職場中的重要性,中央軍軍容軍紀整潔,隊伍有條有理,為何地方軍閥,層次不窮,惡習滿貫。其核心根本就是職業素養低。 大家都是干技術的…

紀實:對CSDN博客系統的一些質疑

我是一個對編程充滿熱情的在校大學生,本來我是懷著滿腔熱情來到CSDN寫博客,記錄和分享自己的學習經歷。卻被這糟糕的博客系統一次次的潑冷水。寫這篇博客確實是因為心中十分不甘和特別生氣,所以我決定要把自己的遭遇寫出來,我自己…

php框架之laravel

常見問題: 1. 訪問網站500錯誤 這是因為laravel的緩存路徑沒有找到 laravel緩存文件路徑是在 config/cache.php中設置,默認存在storage文件夾中 解決:需要保證storage/framework下面創建 sessions, views, cache 文件夾并確保可寫權限 轉載于:https://ww…

MySQL的命令合集

2019獨角獸企業重金招聘Python工程師標準>>> MySQL客戶端操作 $db$是數據庫名稱$table$是數據表名稱$field$是數據表里的字段名稱有些語句最后加上**/G**可以使結果更美觀數據庫相關 創建數據庫,修改數據庫 create database $db$; 使用默認設置create database $db$…

Mac OS使用技巧之四:修改打開不同格式視頻的默認播放器

這里說一下視頻播放的一些問題。大家知道Mac OS中有自帶的一款播放器,叫做Quicktime Player。這已經是一款很牛X的軟件了,但他的定位并不是單純的視頻播放軟件,而是數字媒體制作平臺,可以用于視頻格式的轉換,視頻的錄制…

Sql—表格的建立,刪除,數據的建立與刪除-總結篇

一&#xff0c;Sql—表格的建立&#xff0c;刪除&#xff0c;數據的建立與刪除 Sql表格的建立公式 If exists (select * from sysobjects where <表名> Drop table <表名> Create table <表名> (<列名1> <數據類型> <約束類型> <是否為…

爬取汽車之家新聞

爬取汽車之家新聞 偽造瀏覽器向某個地址發送Http請求&#xff0c;獲取返回的字符串 response requests.get(url 地址)response.contentresponse.encoding apparent_encodingresponse.textbs4&#xff0c;解析HTML格式的字符串 soup BeautifulSoup(<html>...</html…

Mac OS使用技巧之五:Macbook鍵盤的使用基礎技巧

使用過蘋果電腦的朋友應該都知道蘋果的臺式機和筆記本鍵盤布局有自己獨有的風格&#xff0c;Mac里面的鍵盤細節就值得我們深深推敲。這篇博客將為一些Mac的新手&#xff0c; 詳細介紹一下蘋果電腦鍵盤的基礎使用技巧&#xff0c;筆者目前的系統是Mac mavericks。Mac OS按鍵符號…

需求工程week1

這是第一周&#xff0c;我們小組確定了項目工程的主題&#xff0c;對于需求不清楚的地方與甲方進行了溝通。簡單制定了下一周的工作計劃。 以下是詳細說明&#xff1a; &#xff08;1&#xff09;項目背景和范圍 ①背景&#xff1a;在急需志愿活動的今天&#xff0c;在部分個人…

3- 快速上手Linux玩轉典型應用- Linux準備工作

4- 準備工作 查看ip ifconfig # 查看ip地址 ipaddr # ip vi /etc/sysconfig/network-scripts/ifcfg-xxyum install net-tools最小化安裝的server版本沒有ifconfig。使用ip addr tab補全鍵一次補全。兩次提示。 使用pageup pagedown鍵&#xff0c;翻動。 編輯我們的配置文件將o…

Mac OS使用技巧之六:鼠標和觸摸板的使用

本篇說一下Macbook里面鼠標和觸摸板的使用&#xff0c;如果你的電腦是臺式機&#xff0c;那么使用觸摸板可能需要你自己配備Magic Trackpad。在我看來&#xff0c;Mac OS的日常使用基本是不需要鼠標的。Mac OS與觸摸板的完美契合是windows系統永遠無法企及的。但不排除有些情況…