您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x win32移植到android

2013-09-03 07:58 225 查看
本文为作者原创。其中有引用别人的部分有说明和链接。

欢迎转载。转载不得用于商业用途。转载时请表明出去 。

作者:风里疯语

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

开发环境:vs2010 + cocos2d-1.0.1-x-0.12.0 + android-ndk-r7 + Eclipse

本文接着上篇 cocos2d-x 游戏开发系列之二:新建win32项目 而来。请阅读这篇前先看看上一篇文章。

目录:

一:创建android工程

二:代码迁移

三:修改导入的android工程

四:配置Eclipse的NDK编译环境

五:完工,截图,上代码

一:创建android工程

进到引擎目录下   找到create-android-project.bat 文件  双击执行



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



2. 输入项目名。 我输入的是:win32androidDemo



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

4. 顺利的话现在android项目已经建好了。如果报错请接着看下面部分。如果没报错跳过这部分看后面的。 我遇到的错误是:



进到引擎目录下 找到刚创建的 win32androidDemo项目

进入 win32androidDemo\android 文件夹  打开 jni 文件夹,这时会得到一个提示窗:



点继续 就可以进到文件夹了。这种情况还有很多。下面列出这些文件夹:

win32androidDemo\android\jni

win32androidDemo\android\jni\helloworld

win32androidDemo\android\src\org\cocos2dx

win32androidDemo\android\src\org\cocos2dx\application

win32androidDemo\android\src\org\cocos2dx\lib

进到这样的文件夹里面后我们尝试着打开里面的文件,结果很杯具啊,居然被拒绝访问。



居然被拒绝访问。查看了一下文件属性:



它妹的,只有一个特殊权限。就是这个原因造成了我们的错误。解决方法有两个:

a. 把这些文件夹里面的文件的权限 都改为 完全控制。

b. 从别的地方复制这些文件过来。

很显然,方法一劳动量巨大。那么多的文件夹那么多文件 改的想吐。下面跟着我来用方法二吧。稍微分析了几个cocos2d-x生成android的文件。我找到了这些文件的来源。其实就是复制的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  全部删除

该替的换了,该删的删了。下面要进行项目迁移了。

二:代码迁移

把vs2010  win32项目下的 Classes文件夹里的文件全部复制到android 项目下的win32androidDemo\Classes 文件夹下。

win32项目下的Resources 文件夹里的文件全部复制到android 项目下的win32androidDemo\android\assets  文件夹下。如果没有assets  文件夹就创建一个。

好了下一步是导入eclipse。 打开eclipse  新建android项目:



点 next  注意下面的步骤哦。注意红框 Location 就是刚创建的andorid项目的位置。



点Next 选择 andorid版本。我选择的是 2.1



三:修改导入的android工程

好了项目导入进来了。但是有错。没关系跟这我来改。



1:先点开   src



打开win32androidDemo.java 如果是空的,先它删除,再重新创建一个同名的java文件。

2: 打开ApplicationDemo.java,把里面的内容全部复制 粘贴到 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

好了 至此导入eclipse的工作全部完成。

四:配置Eclipse的NDK编译环境

下面在eclipse里面配置一下编译环境。

选中  win32androidDemo项目  点击 菜单栏 project -> properties 选项:



点击 Builders, 接着点击 New...



选中Program  点OK



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

下面的设置项有点多, 按图片来解说吧。  步骤都用红框圈出来了。

1. Name:  这里随便填一个就好了。 我填的是:win32android_Builder

2. 点击 Main

3. 点击  Browse File System...      弹出对话框后 选择NDK的安装路径 选中 ndk-build.cmd 文件。

4. 点击  Browse Workspace...      弹出对话框后 选择当前的项目。

5. 点击 Refresh (就在红色数字 2 的位置)

注意:现在  Apply  和   OK 都不要点。接着看下面的图。



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

接着上图:  点击 Refresh 后,  出现下图的画面。

1.   把红框部分选中。

2.  点击 Build Options 。

注意:现在  Apply  和   OK 都不要点。接着看下面的图。



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

接着上图:  点击  Build Options 后,  出现下图的画面。

1.  按红色框中 选中的 打 √ 吧。  其实红色框中部分都选中也可以。

2.  点击 Specify Resources... 

注意:现在  Apply  和   OK 都不要点。接着看下面的图。



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

接着上图:  点击  Specify Resources...  后,  出现下图的画面。

1.  点开 工程项目前面的 小三角。
2.  勾选上 jni

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



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

好了开始编译了。但是好像出错了。



缺少 libgnustl_static.a 文件。

进到 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 杯具的只能勉强辨认出 world了。。早知道把字体颜色设置成深色的。。



最后是附件下载咯。。。 android工程下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: