本文为作者原创。其中有引用别人的部分有说明和链接。 欢迎转载。转载不得用于商业用途。转载时请表明出去 。 作者:风里疯语 链接: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工程下载
|
|