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编译环境
五:完工,截图,上代码
![](http://my.csdn.net/uploads/201205/01/1335885388_1292.png)
1. 输入android包名。 我输入的是:com.bearsoft.game.demo
![](http://my.csdn.net/uploads/201205/01/1335885394_9764.png)
2. 输入项目名。 我输入的是:win32androidDemo
![](http://my.csdn.net/uploads/201205/01/1335885399_2080.png)
3. 输入android版本id。 我输入的是 3. 也就是 android2.1版本。
4. 顺利的话现在android项目已经建好了。如果报错请接着看下面部分。如果没报错跳过这部分看后面的。 我遇到的错误是:
![](http://my.csdn.net/uploads/201205/01/1335885405_7710.png)
进到引擎目录下 找到刚创建的 win32androidDemo项目
进入 win32androidDemo\android 文件夹 打开 jni 文件夹,这时会得到一个提示窗:
![](http://my.csdn.net/uploads/201205/01/1335885413_8132.png)
点继续 就可以进到文件夹了。这种情况还有很多。下面列出这些文件夹:
win32androidDemo\android\jni
win32androidDemo\android\jni\helloworld
win32androidDemo\android\src\org\cocos2dx
win32androidDemo\android\src\org\cocos2dx\application
win32androidDemo\android\src\org\cocos2dx\lib
进到这样的文件夹里面后我们尝试着打开里面的文件,结果很杯具啊,居然被拒绝访问。
![](http://my.csdn.net/uploads/201205/01/1335886304_2558.png)
居然被拒绝访问。查看了一下文件属性:
![](http://my.csdn.net/uploads/201205/01/1335885418_4432.png)
它妹的,只有一个特殊权限。就是这个原因造成了我们的错误。解决方法有两个:
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 全部删除
该替的换了,该删的删了。下面要进行项目迁移了。
win32项目下的Resources 文件夹里的文件全部复制到android 项目下的win32androidDemo\android\assets 文件夹下。如果没有assets 文件夹就创建一个。
好了下一步是导入eclipse。 打开eclipse 新建android项目:
![](http://my.csdn.net/uploads/201205/01/1335885423_7012.png)
点 next 注意下面的步骤哦。注意红框 Location 就是刚创建的andorid项目的位置。
![](http://my.csdn.net/uploads/201205/01/1335885432_9742.png)
点Next 选择 andorid版本。我选择的是 2.1
![](http://my.csdn.net/uploads/201205/01/1335885437_9548.png)
![](http://my.csdn.net/uploads/201205/01/1335885442_1031.png)
1:先点开 src
![](http://my.csdn.net/uploads/201205/01/1335885449_4576.png)
打开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的工作全部完成。
选中 win32androidDemo项目 点击 菜单栏 project -> properties 选项:
![](http://my.csdn.net/uploads/201205/01/1335885453_7677.png)
点击 Builders, 接着点击 New...
![](http://my.csdn.net/uploads/201205/01/1335885460_5702.png)
选中Program 点OK
![](http://my.csdn.net/uploads/201205/01/1335885464_6930.png)
-------------------------------------------------------------------
下面的设置项有点多, 按图片来解说吧。 步骤都用红框圈出来了。
1. Name: 这里随便填一个就好了。 我填的是:win32android_Builder
2. 点击 Main
3. 点击 Browse File System... 弹出对话框后 选择NDK的安装路径 选中 ndk-build.cmd 文件。
4. 点击 Browse Workspace... 弹出对话框后 选择当前的项目。
5. 点击 Refresh (就在红色数字 2 的位置)
注意:现在 Apply 和 OK 都不要点。接着看下面的图。
![](http://my.csdn.net/uploads/201205/01/1335885470_7200.png)
------------------------------------------------------------------------
接着上图: 点击 Refresh 后, 出现下图的画面。
1. 把红框部分选中。
2. 点击 Build Options 。
注意:现在 Apply 和 OK 都不要点。接着看下面的图。
![](http://my.csdn.net/uploads/201205/01/1335885475_8374.png)
--------------------------------------------------------------------------
接着上图: 点击 Build Options 后, 出现下图的画面。
1. 按红色框中 选中的 打 √ 吧。 其实红色框中部分都选中也可以。
2. 点击 Specify Resources...
注意:现在 Apply 和 OK 都不要点。接着看下面的图。
![](http://my.csdn.net/uploads/201205/01/1335885485_9032.png)
----------------------------------------------------------------------------
接着上图: 点击 Specify Resources... 后, 出现下图的画面。
1. 点开 工程项目前面的 小三角。
2. 勾选上 jni
3. 好了点 Finsh 吧。 然后就可以点 OK 了。
![](http://my.csdn.net/uploads/201205/01/1335885492_8529.png)
--------------------------------------------------------------------------------------------------------------------------------------------------------
好了开始编译了。但是好像出错了。
![](http://my.csdn.net/uploads/201205/01/1335885500_3130.png)
缺少 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...
![](http://my.csdn.net/uploads/201205/01/1335885508_3566.png)
选择我们的win32androidDemo。 点击 OK
![](http://my.csdn.net/uploads/201205/01/1335885514_4107.png)
看到这些文字的时候说明编译成功了。
StaticLibrary : libcocos2d.a
StaticLibrary : libgame_logic.a
SharedLibrary : libhelloworld.so
Install : libhelloworld.so => libs/armeabi/libhelloworld.so
连上手机 或者打开android模拟器运行一下吧。
![](http://my.csdn.net/uploads/201205/01/1335885519_6236.png)
手机截屏: 屏幕上的 Hello World 杯具的只能勉强辨认出 world了。。早知道把字体颜色设置成深色的。。
![](http://img.my.csdn.net/uploads/201205/01/1335885529_9548.jpg)
最后是附件下载咯。。。 android工程下载
欢迎转载。转载不得用于商业用途。转载时请表明出去 。
作者:风里疯语
链接: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 文件 双击执行![](http://my.csdn.net/uploads/201205/01/1335885388_1292.png)
1. 输入android包名。 我输入的是:com.bearsoft.game.demo
![](http://my.csdn.net/uploads/201205/01/1335885394_9764.png)
2. 输入项目名。 我输入的是:win32androidDemo
![](http://my.csdn.net/uploads/201205/01/1335885399_2080.png)
3. 输入android版本id。 我输入的是 3. 也就是 android2.1版本。
4. 顺利的话现在android项目已经建好了。如果报错请接着看下面部分。如果没报错跳过这部分看后面的。 我遇到的错误是:
![](http://my.csdn.net/uploads/201205/01/1335885405_7710.png)
进到引擎目录下 找到刚创建的 win32androidDemo项目
进入 win32androidDemo\android 文件夹 打开 jni 文件夹,这时会得到一个提示窗:
![](http://my.csdn.net/uploads/201205/01/1335885413_8132.png)
点继续 就可以进到文件夹了。这种情况还有很多。下面列出这些文件夹:
win32androidDemo\android\jni
win32androidDemo\android\jni\helloworld
win32androidDemo\android\src\org\cocos2dx
win32androidDemo\android\src\org\cocos2dx\application
win32androidDemo\android\src\org\cocos2dx\lib
进到这样的文件夹里面后我们尝试着打开里面的文件,结果很杯具啊,居然被拒绝访问。
![](http://my.csdn.net/uploads/201205/01/1335886304_2558.png)
居然被拒绝访问。查看了一下文件属性:
![](http://my.csdn.net/uploads/201205/01/1335885418_4432.png)
它妹的,只有一个特殊权限。就是这个原因造成了我们的错误。解决方法有两个:
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项目:
![](http://my.csdn.net/uploads/201205/01/1335885423_7012.png)
点 next 注意下面的步骤哦。注意红框 Location 就是刚创建的andorid项目的位置。
![](http://my.csdn.net/uploads/201205/01/1335885432_9742.png)
点Next 选择 andorid版本。我选择的是 2.1
![](http://my.csdn.net/uploads/201205/01/1335885437_9548.png)
三:修改导入的android工程
好了项目导入进来了。但是有错。没关系跟这我来改。![](http://my.csdn.net/uploads/201205/01/1335885442_1031.png)
1:先点开 src
![](http://my.csdn.net/uploads/201205/01/1335885449_4576.png)
打开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 选项:
![](http://my.csdn.net/uploads/201205/01/1335885453_7677.png)
点击 Builders, 接着点击 New...
![](http://my.csdn.net/uploads/201205/01/1335885460_5702.png)
选中Program 点OK
![](http://my.csdn.net/uploads/201205/01/1335885464_6930.png)
-------------------------------------------------------------------
下面的设置项有点多, 按图片来解说吧。 步骤都用红框圈出来了。
1. Name: 这里随便填一个就好了。 我填的是:win32android_Builder
2. 点击 Main
3. 点击 Browse File System... 弹出对话框后 选择NDK的安装路径 选中 ndk-build.cmd 文件。
4. 点击 Browse Workspace... 弹出对话框后 选择当前的项目。
5. 点击 Refresh (就在红色数字 2 的位置)
注意:现在 Apply 和 OK 都不要点。接着看下面的图。
![](http://my.csdn.net/uploads/201205/01/1335885470_7200.png)
------------------------------------------------------------------------
接着上图: 点击 Refresh 后, 出现下图的画面。
1. 把红框部分选中。
2. 点击 Build Options 。
注意:现在 Apply 和 OK 都不要点。接着看下面的图。
![](http://my.csdn.net/uploads/201205/01/1335885475_8374.png)
--------------------------------------------------------------------------
接着上图: 点击 Build Options 后, 出现下图的画面。
1. 按红色框中 选中的 打 √ 吧。 其实红色框中部分都选中也可以。
2. 点击 Specify Resources...
注意:现在 Apply 和 OK 都不要点。接着看下面的图。
![](http://my.csdn.net/uploads/201205/01/1335885485_9032.png)
----------------------------------------------------------------------------
接着上图: 点击 Specify Resources... 后, 出现下图的画面。
1. 点开 工程项目前面的 小三角。
2. 勾选上 jni
3. 好了点 Finsh 吧。 然后就可以点 OK 了。
![](http://my.csdn.net/uploads/201205/01/1335885492_8529.png)
--------------------------------------------------------------------------------------------------------------------------------------------------------
好了开始编译了。但是好像出错了。
![](http://my.csdn.net/uploads/201205/01/1335885500_3130.png)
缺少 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...
![](http://my.csdn.net/uploads/201205/01/1335885508_3566.png)
选择我们的win32androidDemo。 点击 OK
![](http://my.csdn.net/uploads/201205/01/1335885514_4107.png)
看到这些文字的时候说明编译成功了。
StaticLibrary : libcocos2d.a
StaticLibrary : libgame_logic.a
SharedLibrary : libhelloworld.so
Install : libhelloworld.so => libs/armeabi/libhelloworld.so
五:完工,截图,上代码
好了编译完成。连上手机 或者打开android模拟器运行一下吧。
![](http://my.csdn.net/uploads/201205/01/1335885519_6236.png)
手机截屏: 屏幕上的 Hello World 杯具的只能勉强辨认出 world了。。早知道把字体颜色设置成深色的。。
![](http://img.my.csdn.net/uploads/201205/01/1335885529_9548.jpg)
最后是附件下载咯。。。 android工程下载
相关文章推荐
- Cocos2d-x将win32移植到android
- cocos2d-x学习笔记06:如何将win32移植到android
- Cocos2d-x将win32移植到android
- cocos2d-x游戏从win32平台移植Android平台
- [置顶] cocos2d-x 2.x版本之win32 window移植android 环境搭配 只用NDK 超级详细 android 环境搭配
- cocos2d-x win32移植到android
- cocos2d-x 2.x版本之win32 window移植android 环境搭配 只用NDK 超级详细 android 环境搭配
- [置顶] cocos2d-x 2.x版本之win32 window移植android 环境搭配 只用NDK 超级详细 android 环境搭配
- cocos2d-x学习笔记06:如何将win32移植到android
- cocos2d-x 从环境搭建到win32项目移植android平台
- 关于win32移植android(最新的cocos2d-x安装错误和cygwin编译错误的解决)
- cocos2d-x入门(7)-win7下把win32游戏移植到Android平台(无需cygwin和minigw)
- 【木头Cocos2d-x 002】win32项目移植到Android,终于成功~
- cocos2d-x(2.0.2)的win32工程移植到Android
- cocos2d-x的win32工程移植到Android
- cocos2d-x将win32移植到android上
- cocos2d-x学习笔记06:如何将win32移植到android
- Cocos2d-x将win32移植到android
- cocos2d-x 从win32到android移植的全套解决方案
- cocos2d-x入门(7)-win7下把win32游戏移植到Android平台(无需cygwin和minigw)