cocos2dx移植android平台

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   os   使用   ar   for   

本人這幾天一直都沒有跟新自己的網站內容,問我幹什麼去了,當然是做這篇文章做的事了,說起這個移植來真是麻煩啊,網上實驗了各種方法,都不知道誰對誰錯啊。不過經過本人這三天的研究最後終於成功了,為了讓大家少走一些歪路,我決定一定要寫下這篇文章,新手們,好好看,不要浪費時間了!現在我就把我遇到的問題和一種簡單的方法(方法絕對靠譜,安卓部分適用於3.0)教給大家,還有就是我用到的所有資源。先說資源的問題,大家先去下載我給的資源,一邊下載我們一邊學教程。
關於移植的問題網上的版本大致分為使用Cygwin和不使用的,建議大家不要使用Cygwin了,你下載東西不說,下載下來能不能用更是問題了,很多人就是因為這個東西沒了信心的,最關鍵的是NDK7以後就不需要使用它了,我們新手現在用的版本絕對是NDK7以後的了。還有就是利用create-android-project.bat這個東西來建立工程也不適用了,從cocos2.2版本開始官方就建議使用python建立工程,不過即使你想用這個東西,在cocos2.2的主目錄下也沒有了,既然沒了我們就更不用了。那麼我說一下整體的思路。首先利用python產生項目工程,在android工程下拷貝一些我們寫好的win32工程下的檔案,利用已經配置好的開發android的eclipse開啟android工程,在工程的屬性中配置一些環境變數,然後產生.apk的包,真機運行!下面就開始吧。
1、安裝python2.7.5。下載軟體後安裝就可以了,路徑就選擇預設的吧,反正也不大,然後都是選擇下一步。




2、設定環境變數path,將python的安裝路徑添加到環境變數中。所有的操作按圖中的進行。



注意路徑後邊有個分號,一定要寫上啊。3、解壓cocos2d-x,當然如果你有的話就不用了。但最好放到盤的根目錄下,我的在E盤的根目錄下。將python.bat複製到E:\cocos2d-x-2.2\cocos2d-x-2.2\tools\project-creator檔案夾下。運行這個批處理,接著就輸入項目名稱和包標識名,我現在把我寫的那個忍者飛鏢移植一下,所有的操作。

我們來看看成功了沒有,在E:\cocos2d-x-2.2\cocos2d-x-2.2\projects是不是多了你剛才建立的專案檔夾,主要檔案夾下的內容。



4、我們來說幾個重要的檔案夾和檔案,都是我們將要用到的。 Classes檔案夾下將要放我們的原始碼,你寫的原始碼都要放到這裡,也就是.cpp和.h檔案,不過這裡有倆個需要注意的檔案就是main.cpp和main.h, 等一會你複製的時候不要把main.cpp和main.h複製到這裡來,那複製到什麼地方呢,其實你根本就不用複製,main是程式的入口,想想win32下的main怎麼能放到android平台呢,android平台當然有它自己的main了呀,那android的main在什麼位置呢,我等等再說。好了,現在就把你寫好的東西複製到這個檔案夾吧,記住刪除Classes檔案夾下你沒用到的那四個檔案(否則的話你的工程不是變大了嗎),對我而言HelloWorld的那倆個檔案就刪掉了,AppDelegate被我替換了,main.cpp和main.h記住不要複製啊!Resource下就是我們程式用到的資源,不過也不要把我們用到的資源複製到這個位置。在proj.android工程下,我們看到三個檔案夾,現在我們都點進去,看看有什麼,我們需要做些什麼工作!

我們先修改jni檔案夾下的Android.mk,主要是改我們用到的Classes檔案夾下的檔案的路徑,修改的地方和修改之後的檔案,大家照著我的改就行了,其實就是讓程式知道我們的那些.cpp檔案在什麼地方。


接著開啟jni下的hellocpp,看看你看到了什麼,main.cpp,我們開啟看一下。

這個main.cpp是不是完全不同於win32下的那個cpp檔案,前幾次我在移植的工程中就是把我的那個win32下的main複製到了這裡,結果編譯的時候老是有錯誤,後來才發現的,這個是拿python產生的,我估計不同平台下的這個main寫的都不會相同吧。接著開啟工程下的res檔案夾,進去看看都有什麼,是不是有一張圖片啊,那張圖片就是我們平時玩手機應用的時候在手機上顯示的icon表徵圖,這裡我們可以替換成我們自己的檔案。但是名字要和原來的一樣啊。


接著我們來看項目工程下的另一個檔案夾src,這個檔案夾裡邊缺少了org檔案夾,我們來拷貝一份到這裡,路徑什麼的。




好做完了這幾步基本上就差不多了,現在我們還差資源檔沒有拷貝了,不著急,我們先來搭建一個android開發平台eclipse。5、現在來安裝jdk和jre,安裝我給的這倆個軟體,預設都選擇下一步。
6、解壓android-ndk-r9和Android_SDK,在Android_SDK下有我們要用到的eclipse和sdk。運行eclipse。

按下的表徵圖。下載你手機所用到的API版本,我的android手機版本是2.3的,這裡我下載了API8和API10,大家看看自己的手機都是多少的版本,下載自己的對應API。這個過程需要一段時間。大家耐心等待。



接著建立一個虛擬設備。步驟,目的是為了在win32上運行我們的程式,不過我們一般在真機上運行,這一步其實不是必須的,如果你想讓自己的程式在虛擬機器上測試的話就按如下的步驟進行吧,建議在真機上測試,所以可以跳過這一步驟。



接著匯入我們的android工程,操作,在選擇android工程的時候選擇好了,我的目錄是E:\cocos2d-x-2.2\cocos2d-x-2.2\projects\FirstGame\proj.android。



7、接著看一下我們工程的目錄,是不是多了好幾個檔案夾,其中有一個是assets檔案夾,這裡邊是空的,我們把我們程式的資源檔放進去。


8、這一步很重要,我們來配置一下環境變數,大家看好自己的安裝路徑添加。





以上第一幅圖是添加了資源檔以後重新整理了一下我們的項目,第三幅圖填入NDK的ndk-build.cmd,剩下的是添加了三個環境變數,這三個環境變數分別是:添加COCOS2DX,也就是cocos2dx解壓縮的根目錄;添加NDK_ROOT,也就是NDK解壓縮的根目錄;添加NDK_MODULE_PATH ,是cocos2dx的解壓縮的根目錄和這樣一個目錄,中間有分號的。
E:\cocos2d-x-2.2\cocos2d-x-2.2;E:\cocos2d-x-2.2\cocos2d-x-2.2\cocos2dx\platform\third_party\android\prebuilt。




大家按照上邊的三幅圖添加就可以了,第二幅圖是cocos2d的解壓根目錄。以上配置需要大家仔細配置,配置完成以後點擊確定,然後接著以下操作,我們離成功不遠了!

9、因為不同的人手機版本可能不同,我們這裡先說一下怎麼打包出適合你自己的apk,一邊看圖一邊說話吧。

開啟工程目錄下的AndroidManifest.xml檔案,在圖示劃線的地方的那個數字就是你要打包的API版本,不同的數字代表不同的android版本,大家可以改成自己的android版本對應的API。這個改好了以後我們回到eclipse中。按圖中的進行操作。


如果你看到了中的第二張圖片,證明你成功了,而且這個時間會有點漫長,如果之前出現了錯誤,就和我一樣,一般是API比較低,這麼解決。

編譯好了以後我們就需要打包了。在打包之前附上一篇文章的連結,大家先去準備Andriod程式的數位簽章。之後按圖中的進行操作。
之後按圖中的進行操作。





看到了上邊的這幅圖,大家等待片刻就可以在你設定的路徑下看到打包好的apk檔案了,這樣的話我們就移植成功了,這個工程如果還存在什麼問題,就是配置了項目的變數以後出現的問題,比如程式中有錯誤,但是明明win32下正常啊,你就刪除項目以後重新匯入一遍,然後不要去看那個錯誤,重新構建工程,基本上問題就解決了。我在手機上運行,最後的效果沒法展示給大家了,如果大家有什麼問題,歡迎留言,我們一塊討論。

cocos2dx移植android平台

聯繫我們

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