电竞比分网-中国电竞赛事及体育赛事平台

分享

cocos2d-x 把win32項目遷移到andriod

 gljin_cn 2014-11-06

本文為作者原創(chuàng)。其中有引用別人的部分有說明和鏈接。

歡迎轉(zhuǎn)載。轉(zhuǎn)載不得用于商業(yè)用途。轉(zhuǎn)載時請表明出去 。

作者:風(fēng)里瘋語

鏈接:http://blog.csdn.net/xiawei32/article/details/7526262


開發(fā)環(huán)境:vs2010 + cocos2d-1.0.1-x-0.12.0 + android-ndk-r7 + Eclipse

本文接著上篇 cocos2d-x 游戲開發(fā)系列之二:新建win32項目 而來。請閱讀這篇前先看看上一篇文章。



目錄:

一:創(chuàng)建android工程

二:代碼遷移

三:修改導(dǎo)入的android工程

四:配置Eclipse的NDK編譯環(huán)境

五:完工,截圖,上代碼





一:創(chuàng)建android工程

進(jìn)到引擎目錄下   找到create-android-project.bat 文件  雙擊執(zhí)行


1. 輸入android包名。 我輸入的是:com.bearsoft.game.demo


2. 輸入項目名。 我輸入的是:win32androidDemo

3. 輸入android版本id。  我輸入的是 3.  也就是 android2.1版本。


4. 順利的話現(xiàn)在android項目已經(jīng)建好了。如果報錯請接著看下面部分。如果沒報錯跳過這部分看后面的。 我遇到的錯誤是:


進(jìn)到引擎目錄下 找到剛創(chuàng)建的 win32androidDemo項目

進(jìn)入 win32androidDemo\android 文件夾  打開 jni 文件夾,這時會得到一個提示窗:

點繼續(xù) 就可以進(jìn)到文件夾了。這種情況還有很多。下面列出這些文件夾:

win32androidDemo\android\jni

win32androidDemo\android\jni\helloworld

win32androidDemo\android\src\org\cocos2dx

win32androidDemo\android\src\org\cocos2dx\application

win32androidDemo\android\src\org\cocos2dx\lib

進(jìn)到這樣的文件夾里面后我們嘗試著打開里面的文件,結(jié)果很杯具啊,居然被拒絕訪問。



居然被拒絕訪問。查看了一下文件屬性:


它妹的,只有一個特殊權(quán)限。就是這個原因造成了我們的錯誤。解決方法有兩個:

a. 把這些文件夾里面的文件的權(quán)限 都改為 完全控制。

b. 從別的地方復(fù)制這些文件過來。

很顯然,方法一勞動量巨大。那么多的文件夾那么多文件 改的想吐。下面跟著我來用方法二吧。稍微分析了幾個cocos2d-x生成android的文件。我找到了這些文件的來源。其實就是復(fù)制的HelloWorld項目下的。

好了知道了文件來源,下面就把這些文件都替換掉咯。

win32androidDemo\android\jni  替換文件夾下所有文件和文件夾

win32androidDemo\android\res\drawable-hdpi  替換文件夾下所有文件

win32androidDemo\android\res\drawable-ldpi  替換文件夾下所有文件

win32androidDemo\android\res\drawable-mdpi  替換文件夾下所有文件

win32androidDemo\android\src\org   替換文件夾下所有文件和文件夾

win32androidDemo\Classes 替換Android.mk 后其余刪除

win32androidDemo\Resources  全部刪除

該替的換了,該刪的刪了。下面要進(jìn)行項目遷移了。


二:代碼遷移

把vs2010  win32項目下的 Classes文件夾里的文件全部復(fù)制到android 項目下的win32androidDemo\Classes 文件夾下。

win32項目下的Resources 文件夾里的文件全部復(fù)制到android 項目下的win32androidDemo\android\assets  文件夾下。如果沒有assets  文件夾就創(chuàng)建一個。

好了下一步是導(dǎo)入eclipse。 打開eclipse  新建android項目:

點 next  注意下面的步驟哦。注意紅框 Location 就是剛創(chuàng)建的andorid項目的位置。

點Next 選擇 andorid版本。我選擇的是 2.1


三:修改導(dǎo)入的android工程

好了項目導(dǎo)入進(jìn)來了。但是有錯。沒關(guān)系跟這我來改。

1:先點開   src

打開win32androidDemo.java 如果是空的,先它刪除,再重新創(chuàng)建一個同名的java文件。

2: 打開ApplicationDemo.java,把里面的內(nèi)容全部復(fù)制 粘貼到 win32androidDemo.java 文件里。

3:刪除org.cocos2dx.application 包 和 ApplicationDemo.java

4:打開win32androidDemo.java,修改以下部分:

package org.cocos2dx.application;  

-> package com.bearsoft.game.demo;(自己的包名)


public class ApplicationDemo extends Cocos2dxActivity

-> public class win32androidDemo extends Cocos2dxActivity 


setContentView(R.layout.helloworld_demo);

-> setContentView(R.layout.game_demo);


mGLView=(Cocos2dxGLSurfaceView)findViewById(R.id.helloworld_gl_surfaceview);

-> mGLView = (Cocos2dxGLSurfaceView)findViewById(R.id.game_gl_surfaceview);

保存后 錯誤消失了。接下來打開 win32androidDemo\Classes 文件夾 找到 Android.mk

注意必須這個文件夾下的 Android.mk 打開這個文件。

找到  HelloWorldScene.cpp   把它替換成 我們修改的  MainMenuScene.cpp

好了 至此導(dǎo)入eclipse的工作全部完成。


四:配置Eclipse的NDK編譯環(huán)境

下面在eclipse里面配置一下編譯環(huán)境。

選中  win32androidDemo項目  點擊 菜單欄 project -> properties 選項:

點擊 Builders, 接著點擊 New...

選中Program  點OK

-------------------------------------------------------------------

下面的設(shè)置項有點多, 按圖片來解說吧。  步驟都用紅框圈出來了。

1. Name:  這里隨便填一個就好了。 我填的是:win32android_Builder

2. 點擊 Main

3. 點擊  Browse File System...      彈出對話框后 選擇NDK的安裝路徑 選中 ndk-build.cmd 文件。

4. 點擊  Browse Workspace...      彈出對話框后 選擇當(dāng)前的項目。

5. 點擊 Refresh (就在紅色數(shù)字 2 的位置)

注意:現(xiàn)在  Apply  和   OK 都不要點。接著看下面的圖。

------------------------------------------------------------------------

接著上圖:  點擊 Refresh 后,  出現(xiàn)下圖的畫面。

1.   把紅框部分選中。

2.  點擊 Build Options 。

注意:現(xiàn)在  Apply  和   OK 都不要點。接著看下面的圖。

--------------------------------------------------------------------------

接著上圖:  點擊  Build Options 后,  出現(xiàn)下圖的畫面。

1.  按紅色框中 選中的 打 √ 吧。  其實紅色框中部分都選中也可以。

2.  點擊 Specify Resources... 

注意:現(xiàn)在  Apply  和   OK 都不要點。接著看下面的圖。


----------------------------------------------------------------------------

接著上圖:  點擊  Specify Resources...  后,  出現(xiàn)下圖的畫面。

1.  點開 工程項目前面的 小三角。

2.  勾選上 jni

3.  好了點  Finsh 吧。  然后就可以點 OK 了。

--------------------------------------------------------------------------------------------------------------------------------------------------------

好了開始編譯了。但是好像出錯了。

缺少 libgnustl_static.a 文件。

進(jìn)到 NDK 安裝路徑下 android-ndk-r7\sources\cxx-stl\gnu-libstdc++\libs\armeabi\libgnustl_static.a  文件手動的copy到 cocos2d-1.0.1-x-0.12.0\win32androidDemo\android\obj\local\armeabi目錄下。

添加完 libgnustl_static.a 文件后,在菜單欄點 Project -> Clean... 

選擇我們的win32androidDemo。 點擊 OK

看到這些文字的時候說明編譯成功了。

StaticLibrary  : libcocos2d.a

StaticLibrary  : libgame_logic.a

SharedLibrary  : libhelloworld.so

Install        : libhelloworld.so => libs/armeabi/libhelloworld.so



五:完工,截圖,上代碼

好了編譯完成。

連上手機 或者打開android模擬器運行一下吧。

手機截屏:  屏幕上的 Hello World 杯具的只能勉強辨認(rèn)出 world了。。早知道把字體顏色設(shè)置成深色的。。



最后是附件下載咯。。。 android工程下載

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多