再两天就过年啦,这篇博客应该是今年的最后一篇吧。在此提前恭贺大家。。。。元宵节快乐!!!相信很多大牛说的都是新年快乐之类的,但是咱不能跟他们一样啊,咱虽然博客不咋的,但是肯定要体现出自己的身份跟内涵。所以,祝大家。。清明节快乐。。。

可能是因为快过年的缘故,boss难得的没有给我布置新的任务,这让我难得有时间做自己想做的事,如用了一周多做了个小游戏,还有用来好几天看 c++ primer。本来想把游戏代码贴到博客上来,最后想想,算了:不出来献丑了~~

将win32项目移植到安卓上,这个过程当真让我死去活来。可是能因为之前没接触过JAVA的缘故吧。不过我相信我这篇博客还是讲的蛮完整的,最后介绍了两种编译动态库的方法,请看:

一、首先要要知道你到底要下载什么!!!

1.  eclipse下载32位的(官网有)http://cygwin.com/install.html

Eclipse c++版本下载:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-cpp-indigo-SR2-incubation-win32.zip

3.  Android SDK直接用32位的(没有区分32还是64)不用安装,下载后直接解压到合适目录即可,android SDK采用了Java语言,所以需要先安装JDK 5.0及以上版本。直接下载jdk安装文件安装更为方便。Sdk 里有eclipse,编码工具

http://xiazai.zol.com.cn/xiazaiDown.php?softid=424807&type=7

ADT下载地址:http://dl.google.com/android/ADT-18.0.0.zip(这个版本太低了,大家可以自己去百度下载20以上的)

4.  Android NDK 直接用32位的(没有区分32还是64),有这个东西才能让安卓支持c/c++

:http://developer.android.com/tools/sdk/ndk/index.html#Installing

5.CygWin,这个我懒得去官网下载安装,直接用了一个百度一下找的(Cygwin Easy 2007.03.21(ISO)),解压后,直接把cygwin目录剪切到C盘根目录了,这个大家可以不理我,自己搞定CygWin的安装百度就有,或者http://www.cygwin.com/,这种方式下载会久了点。但是靠谱(这个先别急着下,后面会教你到底应该怎么去安装这货)

二、eclipse安装及其设置

下载完后不用安装,解压后直接可以使用。打开eclipse ,

1、如果eclipse还不支持安卓,那就要下载安卓组件。

点击help,-soft update(好像是这个),然后,在Work with栏填入https://dl-ssl.google.com/android/eclipse/等待eclipse搜索完成后,会在主视窗中列出ADT插件下载项目,全部选择,点击Next按钮。

如果之前已经有下载好的ADK,可以选择ADD,然后在弹出的窗口选择Archive,把你ADT的存放路径输进去。

再次点选Next按钮后出现软件许可窗口,需要勾选同意,然后点击Finish按钮eclipse会开始下载安装ADT插件。完成后重新启动eclipse,可以在File->New->Project菜单下找到Android Project证明ADT更新成功

2、如果eclipse还不支持c++(我的版本默认就是c++的),那就要下载CDT插件:

CDT可以从http://www.eclipse.org/cdt/downloads.php下载到,对应eclipse3.7.1的CDT插件版本为CDT8.0.1。 下载完成后,启动eclipse,选择Help-> SoftwareUpdates,点击ADD按钮选择archive,选择下载好的CDT插件zip文件(cdt-master-8.0.1.zip)然后OK确认,勾选全部安装项目,点击next按钮eclipse会开始安装。同样,在安装过程中有一次同意软件协议选项的勾选。

完成后eclipse会要求重启软件,OK即可。重启eclipse后选择New->Projec会发现eclipse已经支持C/C++项目。

3、关联NDK

使用NDK的目的为将C/C++编写的代码生成能在arm上运行的*.so文件。由android的java代码来调用。AndroidNDK可以从http://developer.android.com/sdk/ndk/index.html进行下载,截止2012-1-19最新版本为r7

菜单-窗口-preference-android-ndk,然后把ndk的根目录路径输进去

4、下载android sdk

Android SDK可以从 http://developer.android.com/sdk/index.html下载到,截止到2012-1-19最新版本为r16,请选择对应windows操作系统位数进行下载。下载完成后解压到任意路径即可,解压后路径内不包含任何SDK,还需要运行 SDK Manager.exe(在下载的sdk目录下)进行SDK包下载。 笔者没有下载最新的SDK,是通过r10版本的SDKManager进行更新的。将r10版本的 SDK Manager.exe更新至r15,即可看到新发布的SDK包。

5、cygwin安装

Cygwin为Linux模拟环境,因使用NDK生成本地*.so本地库需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。Cygwin可以从http://cygwin.com/install.html 下载到。(可以选择下载但不安装选项来创建“本地安装包”)安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel类中的四个组件包,如果嫌找起来过于麻烦,可将Devel类从Default改为Install全部安装也可以。

安装过程:在官网下载一个setup.exe,然后运行他,

第一步:运行setup程序,第一步图略,直接点击Next进入下一步。

第二步:选择安装方式,第一次可以采用DirectConnection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。

第三步:选择安装目录,比如C:\Cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。

第四步:设置本地包暂存路径

暂存目录默认是放到setup.exe的同级目录下,下载后名字类似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f这样格式。

第五步:设置网络连接方式

第六步:选择下载站点地址

起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。

第七步:等待加载安装项载入,选择安装项

我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。

第八步:等待下载完成

下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约750M,下载完成后会自动安装到上文设置的安装目录。

提醒:第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。

验证Cygwin环境

安装完成后,先运行Cygwin一次(Cygwin.bat),以便创建一些用户环境文件,分别输入:make -v和gcc -v.如果检测成功,会有make和gcc相关版本信息打印出来,如下图。(我有试过直接下载了一个2G的cygwin,解压后可以直接用。。。Gcc -v 或者 make-v 都有版本信息输出。)

三、创建android项目

1:创建android工程

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

一般都会提示没有cygwin,android-sdk,NDK(关联就是在这里关联的,该路径),所以要先安装这些东东。用UE打开create-android-project.bat,然后修改cygwin,NDK等的安装路径

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

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

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

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

(注意,这里是根据它提示的序号输入的,如

这个说明你目前只有4.2这个版本可以用,如果你想用其他安卓版本,就要去下载

下载方式:在E:\android sdk\adt-bundle-windows-x86这个目录下有个sdk manage,点击后选择你所要的版本,然后下载,过程可能有点持久。

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

没关系,这是CygWin没有配置好的原因,把CygWin的bin目录路径加入到环境变量的Path里就行了(我的电脑-右击-属性-高级-环境变量-path修改:;E:\cygwin\bin

5、生成项目后,进入项目里的proj.android/jni,编辑android.mk,

将准备好的代码文件拷贝到工程下的Classes目录;资源文件拷贝到工程下的Resource目录。打开Classes目录找到Android.mk,使用编辑工具打开,在LOCAL_SRC_FILES:=  填入要编译的cpp文件,保存后关闭。如: LOCAL_SRC_FILES:= AppDelegate.cpp \

GameOverScene.cpp\                    Joystick.cpp \                    TerribleGameScene.cpp

四、编译

编译有两种办法,一个是用cygwin ,一个是用eclipse编译。首先将cygwin

1、打开cygwin,输入工程路径下的Android文件夹的完整路径,如:cdd:/makeapk/MyGame/Android。然后运行build_native.sh文件,具体输入为:./build_native.sh

2. 编译过程中,可能会提示 NDK_ROOT NOT DEFINE,这说明你没有在环境变量里新建一个NDK_ROOT这个环境变量。我的电脑-右键-属性-高级-环境变量,添加这三个环境变量:

里面的内容分别是:cocos2d-x 的安装根目录:E:/hzk/cocos2d-x/cocos2d-2.0-x-2.0.4,

和NDK_MODULE_PATH:E:/hzk/cocos2d-x/cocos2d-2.0-x-2.0.4;E:/hzk/cocos2d-x/cocos2d-2.0-x-2.0.4/cocos2dx/platform/third_party/android/prebuilt

还有 NDK_ROOT :E:\android\android-ndk-r8

3.补充一点,每次打开cygwin并输入完整路径是很麻烦的事情,可以通过下面的方法自动执行一些命令:用记事本打开cygwin根目录下的.\etc\bash.bashrc文件,在文件末尾加入欲输入的命令,例如 cd e: cdAPKMAKE/ko/android ./build_native.sh 保存后,下次运行cygwin时,这几行命令将自动被执行。

4、编译完成

5.打开eclipse,选择New->AndroidProfect创建新的android工程。

6.选择通过已存在的代码创建工程,浏览工程目录下的android文件夹,eclipse会自动填写项目名,Finish即可。

7. 右键点击创建工程是输入的工程名对应的java文件,选择Run As->RunConfigurations进入运行设置。在弹出对话框中双击AndroidApplication选项,在Android选项卡选择好工程点击Run按钮即可。由于真机可用的*.apk文件将生成于<工程路径>/Android/bin路径下。

接下来讲用eclipse编译:

1、导入项目,切记,在导入到时候不要选复制选项,

2、导入成功后,选择项目,右击-androidtools - add native support--

3、run as - run configuration--选择一个模拟器。 开始编译,时间有点久,过程跟cygwin 类似。

查看动态库有没有编译完成,进入项目 目录,看libs 里有没有.so文件

黑屏的原因:

1、没有手动拷贝资源文件到ASSETS文件夹下面;

2、COCOS2D-X2.0以上因为OPGELES的关系不支持模拟器,所以请使用真机调试; 或者也有可能是2.0.4有些问题,换2.0.3的试试

PS:真机调试的简单方法是装豌豆荚,因为手机专用驱动很难找,而豌豆荚会帮你装好所有驱动,然后直接连接就是了。

HELLOWORLD官方示例程序按照上述方法可运行之后,请学习官方示例程序中的.MK文件,然后就可以用自己的CLASS、资源、MK文件,进行自己的程序移植编译了。稍微简单一点的方法是更改示例程序MK文件之后,拷贝进去CLASS和资源,然后尝试运行。可运行之后再去修改图标、程序名等等。

转载于:https://www.cnblogs.com/start530/archive/2013/02/05/3834369.html

cocos2d-x 菜鸟实习生学习篇(十) win32项目移植到安卓相关推荐

  1. 十一、Android学习第十天——项目开始(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天--项目开始 Android知识点的学习告一 ...

  2. Java学习篇十——关于方法的定义和使用

    写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书.第一本:<Java 编程指南>,[美] Budi Kurniawan 著,闫斌 贺莲 译.第二本:<第一行代码 ...

  3. redis学习篇(十)-----高级特性之持久化处理

    2019独角兽企业重金招聘Python工程师标准>>> redis是基于内存的数据库.基于内存的数据库速度虽然快,但是却有一个严重的弊端:当服务器突然宕机或者断电时,内存里的数据都会 ...

  4. Gradle学习(二十)——多项目构建详解

    跨项目配置 虽然子项目之间可以完全隔离单独配置,但是子项目直接有相同特征的情况也是很常见的,多个项目共享配置是更好的选择. 配置和执行 在gradle学习-十八-构建的生命周期这一篇中我们已经讲过Gr ...

  5. IDEA学习篇——IDEA刷新项目/清除项目缓存

    点击File -> Invalidate caches ,点击之后在弹出框中点击确认,之后软件就自动重启了 ## 文末 >欢迎关注个人微信公众号:**Coder编程** 获取最新原创技术文 ...

  6. ballerina 学习二十六 项目docker 部署 运行(二)

    ballerina 从发布,到现在官方文档的更新也是很给力的,同时也有好多改进,越来越好用了 可以参考官方文档 https://ballerina.io/learn/by-guide/restful- ...

  7. 菜鸟的学习之路----Springboot项目配置Swagger--maven方式

    如何向已有的spring-boot引入swagger 以下三步 - 1.pom.xml文件引入jar包 <properties><swagger.version>2.8.0&l ...

  8. 配置环境将win32项目移植到Android

    本篇文章朋友在北京吃饭的时候突然想到的...这几周就有想写几篇关于配置环境的文章,所以回家到之后就奋笔疾书的写出来发表了 1.编辑cocos2d-x目录下的create-android-project ...

  9. 摘录cocos2d-x 从环境搭建到win32项目移植android平台

    软件:cocos2d-x-2.2.3:android-ndk-r9d:adt-bundle-windows-x86_64-20131030:python-2.7.6: 1安装配置python 安装没什 ...

最新文章

  1. Nature综述:肠道微生物在人类代谢健康与疾病中的作用
  2. CSS 从入门到放弃系列:CSS的引入方式
  3. laravel 初识
  4. LiveVideoStack线上分享第四季(二):基于内容的自适应视频传输算法及其应用...
  5. fullpage常用配置
  6. common,Google Guava,Guice
  7. Notes配置初始化和重新设置(不卸载)
  8. Apache Flink 学习教程----持续更新
  9. 安装LaTeX中文字体 xGBKFonts
  10. Shiro面试题答案
  11. 模糊PID(自适应模糊PID、fuzzy PID)的基本原理及应用举例 by 研三笔记
  12. 21节点六自由度梁单元 ,悬臂有限元代码
  13. SystemUI之功能介绍和UI布局实现
  14. Docker创建容器后无法update更新以及Job for docker.service failed because the control……错误
  15. html实现百度换肤,案例实战(二):百度脑图网站换肤
  16. Confluence: A Robust Non-IoU Alternative to Non-Maxima Suppression in Object Detection 论文阅读翻译
  17. 匹配 网络 Q值 带宽
  18. 大数据带来新机遇:如何利用大数据技术优化跨境电商运营?
  19. mac+unity3d准备工作——磨刀
  20. 条件概率、全概率公式和贝叶斯公式

热门文章

  1. 2021北大生命科学院饶毅教授毕业致辞
  2. 经典小游戏开发思路和算法之打砖块(3)
  3. js 计算在AB两点连线上,距离A点一定距离的点的坐标
  4. 【lvgl游戏开发】用lvgl写了一个数字对拼图益智小游戏
  5. 端口被占用查看端口并停止响应端口
  6. 神木林服务器未能,梦幻西游:175华山剑会神木林,美中不足装备还差一点没凑齐!...
  7. IT痴汉的工作现状15-低级错误
  8. LeetCode 1306. 跳跃游戏 III
  9. 选择语句(叉烧和烤肉)
  10. css html制做王者荣耀网站,CSS3实现王者荣耀匹配人员加载页面的方法