本文為作者原創(chuàng)。其中有引用別人的部分有說(shuō)明和鏈接。 歡迎轉(zhuǎn)載。轉(zhuǎn)載不得用于商業(yè)用途。轉(zhuǎn)載時(shí)請(qǐng)表明出去 。 作者:風(fēng)里瘋語(yǔ) 鏈接:http://blog.csdn.net/xiawei32/article/details/7526262
開(kāi)發(fā)環(huán)境:vs2010 + cocos2d-1.0.1-x-0.12.0 + android-ndk-r7 + Eclipse 本文接著上篇 cocos2d-x 游戲開(kāi)發(fā)系列之二:新建win32項(xiàng)目 而來(lái)。請(qǐng)閱讀這篇前先看看上一篇文章。
目錄: 一:創(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. 輸入項(xiàng)目名。 我輸入的是:win32androidDemo 3. 輸入android版本id。 我輸入的是 3. 也就是 android2.1版本。
4. 順利的話(huà)現(xiàn)在android項(xiàng)目已經(jīng)建好了。如果報(bào)錯(cuò)請(qǐng)接著看下面部分。如果沒(méi)報(bào)錯(cuò)跳過(guò)這部分看后面的。 我遇到的錯(cuò)誤是:
進(jìn)到引擎目錄下 找到剛創(chuàng)建的 win32androidDemo項(xiàng)目 進(jìn)入 win32androidDemo\android 文件夾 打開(kāi) jni 文件夾,這時(shí)會(huì)得到一個(gè)提示窗: 點(diǎn)繼續(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)到這樣的文件夾里面后我們嘗試著打開(kāi)里面的文件,結(jié)果很杯具啊,居然被拒絕訪問(wèn)。
居然被拒絕訪問(wèn)。查看了一下文件屬性:
它妹的,只有一個(gè)特殊權(quán)限。就是這個(gè)原因造成了我們的錯(cuò)誤。解決方法有兩個(gè): a. 把這些文件夾里面的文件的權(quán)限 都改為 完全控制。 b. 從別的地方復(fù)制這些文件過(guò)來(lái)。 很顯然,方法一勞動(dòng)量巨大。那么多的文件夾那么多文件 改的想吐。下面跟著我來(lái)用方法二吧。稍微分析了幾個(gè)cocos2d-x生成android的文件。我找到了這些文件的來(lái)源。其實(shí)就是復(fù)制的HelloWorld項(xiàng)目下的。 好了知道了文件來(lái)源,下面就把這些文件都替換掉咯。 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)行項(xiàng)目遷移了。
二:代碼遷移把vs2010 win32項(xiàng)目下的 Classes文件夾里的文件全部復(fù)制到android 項(xiàng)目下的win32androidDemo\Classes 文件夾下。 win32項(xiàng)目下的Resources 文件夾里的文件全部復(fù)制到android 項(xiàng)目下的win32androidDemo\android\assets 文件夾下。如果沒(méi)有assets 文件夾就創(chuàng)建一個(gè)。 好了下一步是導(dǎo)入eclipse。 打開(kāi)eclipse 新建android項(xiàng)目:
點(diǎn) next 注意下面的步驟哦。注意紅框 Location 就是剛創(chuàng)建的andorid項(xiàng)目的位置。 點(diǎn)Next 選擇 andorid版本。我選擇的是 2.1
三:修改導(dǎo)入的android工程好了項(xiàng)目導(dǎo)入進(jìn)來(lái)了。但是有錯(cuò)。沒(méi)關(guān)系跟這我來(lái)改。 1:先點(diǎn)開(kāi) src 打開(kāi)win32androidDemo.java 如果是空的,先它刪除,再重新創(chuàng)建一個(gè)同名的java文件。
2: 打開(kāi)ApplicationDemo.java,把里面的內(nèi)容全部復(fù)制 粘貼到 win32androidDemo.java 文件里。 3:刪除org.cocos2dx.application 包 和 ApplicationDemo.java 4:打開(kāi)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);
保存后 錯(cuò)誤消失了。接下來(lái)打開(kāi) win32androidDemo\Classes 文件夾 找到 Android.mk 注意必須這個(gè)文件夾下的 Android.mk 打開(kāi)這個(gè)文件。 找到 HelloWorldScene.cpp 把它替換成 我們修改的 MainMenuScene.cpp 好了 至此導(dǎo)入eclipse的工作全部完成。
四:配置Eclipse的NDK編譯環(huán)境下面在eclipse里面配置一下編譯環(huán)境。 選中 win32androidDemo項(xiàng)目 點(diǎn)擊 菜單欄 project -> properties 選項(xiàng): 點(diǎn)擊 Builders, 接著點(diǎn)擊 New... 選中Program 點(diǎn)OK ------------------------------------------------------------------- 下面的設(shè)置項(xiàng)有點(diǎn)多, 按圖片來(lái)解說(shuō)吧。 步驟都用紅框圈出來(lái)了。 1. Name: 這里隨便填一個(gè)就好了。 我填的是:win32android_Builder 2. 點(diǎn)擊 Main 3. 點(diǎn)擊 Browse File System... 彈出對(duì)話(huà)框后 選擇NDK的安裝路徑 選中 ndk-build.cmd 文件。 4. 點(diǎn)擊 Browse Workspace... 彈出對(duì)話(huà)框后 選擇當(dāng)前的項(xiàng)目。 5. 點(diǎn)擊 Refresh (就在紅色數(shù)字 2 的位置) 注意:現(xiàn)在 Apply 和 OK 都不要點(diǎn)。接著看下面的圖。 ------------------------------------------------------------------------ 接著上圖: 點(diǎn)擊 Refresh 后, 出現(xiàn)下圖的畫(huà)面。 1. 把紅框部分選中。 2. 點(diǎn)擊 Build Options 。 注意:現(xiàn)在 Apply 和 OK 都不要點(diǎn)。接著看下面的圖。
-------------------------------------------------------------------------- 接著上圖: 點(diǎn)擊 Build Options 后, 出現(xiàn)下圖的畫(huà)面。 1. 按紅色框中 選中的 打 √ 吧。 其實(shí)紅色框中部分都選中也可以。 2. 點(diǎn)擊 Specify Resources... 注意:現(xiàn)在 Apply 和 OK 都不要點(diǎn)。接著看下面的圖。
---------------------------------------------------------------------------- 接著上圖: 點(diǎn)擊 Specify Resources... 后, 出現(xiàn)下圖的畫(huà)面。 1. 點(diǎn)開(kāi) 工程項(xiàng)目前面的 小三角。2. 勾選上 jni 3. 好了點(diǎn) Finsh 吧。 然后就可以點(diǎn) OK 了。 --------------------------------------------------------------------------------------------------------------------------------------------------------
好了開(kāi)始編譯了。但是好像出錯(cuò)了。 缺少 libgnustl_static.a 文件。 進(jìn)到 NDK 安裝路徑下 android-ndk-r7\sources\cxx-stl\gnu-libstdc++\libs\armeabi\libgnustl_static.a 文件手動(dòng)的copy到 cocos2d-1.0.1-x-0.12.0\win32androidDemo\android\obj\local\armeabi目錄下。 添加完 libgnustl_static.a 文件后,在菜單欄點(diǎn) Project -> Clean...
選擇我們的win32androidDemo。 點(diǎn)擊 OK
看到這些文字的時(shí)候說(shuō)明編譯成功了。 StaticLibrary : libcocos2d.a StaticLibrary : libgame_logic.a SharedLibrary : libhelloworld.so Install : libhelloworld.so => libs/armeabi/libhelloworld.so
五:完工,截圖,上代碼好了編譯完成。 連上手機(jī) 或者打開(kāi)android模擬器運(yùn)行一下吧。
手機(jī)截屏: 屏幕上的 Hello World 杯具的只能勉強(qiáng)辨認(rèn)出 world了。。早知道把字體顏色設(shè)置成深色的。。
最后是附件下載咯。。。 android工程下載
|
|
來(lái)自: gljin_cn > 《游戲開(kāi)發(fā)》