cocos2d-x win32交叉编译android项目经验

转自:http://blog.csdn.net/ilylyl521/article/details/9222883

Hello!大家好,欢迎来到互撸娃的博客。这是我的第一篇博文。今天教大家怎么把2dx的win32项目交叉编译成android项目并最终编译成apk。我会讲的很详细。并注明我遇到的一些错误。我所用的cocos2d-x版本是2.1.4。


需要的所有软件:VS2010(或2008,2012等)、eclipse+ADT插件+androidSDK(这三个可以单独下载也可以直接到谷歌开发者页面下载整合包)、androidNDK、Cygwin

注:eclipse+ADT插件+androidSDK 如果是单独下载如何配置请看:这里

androidNDK直接下载下来解压。

如何安装Cygwin请看这里。安装过程有点长。。



好了,我们继续。首先用VS编译好项目。

(1)创建新空的android项目。

进入到cocos2d-x引擎文件夹下。找到create-android-project.bat这个东西。用它来创建新的空的android项目。但是首先要修改下它。用记事本或其他的打开它。
1 [img]
[img]http://dl2.iteye.com/upload/attachment/0092/1948/115323cd-02f0-35f1-a964-76c21032ac29.jpg[/img]
[/img]

修改完这三处后,双击运行。

之后会弹出这个:
2[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1950/bbd2842c-d738-398f-b12f-3781fa2c2e8a.jpg[/img]
[/img]
你需要在后面输入项目包名 比如 com.example.test 然后回车,接下来出现

接着输入项目名字 如:HelloWorld 然后回车。
3[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1952/1bc7348c-aea2-3895-a016-baabf2dd152a.jpg[/img]
[/img]
然后出现这个,在id 处填上数字 如 填2 就带表项目最低支持andoroid 2.2版本。
4[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1954/7f381628-9fd8-3a42-9d97-4af6e347d6e4.jpg[/img]
[/img]

好了,这时你会在cocos2d-x目录下看到刚刚建成的android空项目。
5[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1956/4d6ab7d3-5074-3c2d-b4b3-ebbd92055d8b.jpg[/img]
[/img]我建的是myTest

打开后会看到
6[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1958/4cc9f94c-1438-3d49-98c6-d6119a58f4a1.jpg[/img]
[/img]

说明:

Classes里存放win32你要编译的项目的cpp文件。

pro.android里存放的是android的项目文件

Resources里存放的资源文件

(2)编译文件

首先你要把win32的项目中你要编译的所有的.cpp和.h文件全部移到myTest\Classes目录中。

然后把资源图片音乐什么的都移动到myTest\Resources目录下。

然后还要修改一个地方:

进入到 myTest\proj.android\jni下,用记事本打开Android.mk。

修改如下:
7[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1960/48885565-4153-36f3-bf9c-21713668a2b3.jpg[/img]
[/img]

保存。

好了,接下来打开cygwin编译文件。但在此之前先配置两个环境变量吧!

右键计算机-属性-高级管理-环境变量-添加系统变量

名:NDK_ROOT 值:D:\soft\android-ndk-r8e (你的ndk目录)

名:COCOS2DX_ROOT 值:E:\code\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2\cocos2dx (引擎目录)



来到你的cygwin目录下,打开Cygwin.bat

接着输入 cd E:\code\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2\myTest\proj.android 回车。也就是进入你的android项目的pro.android目录下。

接着输入 ./build_native.sh 这就启动了build_native.sh 这时就可以编译了。过程也比较慢。

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

注:虽然之前已经配置了ndk的目录,但是我运行 输入./build_native.sh后报错提示我 未找到ndk! 我在网上找到了解决办法:

用记事本打开build_native.sh。修改如下
8[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1962/adaef062-6569-31c0-8626-175dab387d3e.jpg[/img]
[/img]

然后继续运行./build_native.sh吧。

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

备注:第一次成功了。第二次在进行这一步时。出错了。

出现

cygwin warning:
MS-DOS style path detected: D:/Slickedit/WorkSpace/Debug/Demo4Cpp.o
Preferred POSIX equivalent is: /cygdrive/d/Slickedit/WorkSpace/Debug/Demo4Cpp.o
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

类似这种错误。解决的办法是添加系统变量

CYGWIN=nodosfilewarning

我后来的项目里用到了iconv.h这个库。报错为

iconv.h: No such file or directory

解决办法:在源文件里 #include"iconv.h" 地址写绝对地址。也就是#include"D:/xxx/xxx/xxx/iconv.h"这样。

(3)eclipse导入项目(4.22版本的eclipse奥)

好了工作接近尾声了。

打开eclipse。左边空白处右键鼠标-import-导入已存在的项目 还是看图吧:
9[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1964/b2e7bc64-be40-3b91-b7fb-f41839151401.jpg[/img]
[/img]

然后点击Browse选择android项目路径,最都点击finish就行了。
10[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1966/e358500d-bc98-3a26-a528-9a16c0c129e4.jpg[/img]
[/img]

导入项目后基本不会出错。但我的项目出了两个错。

第一个是 src里没有cocos2dx.lib包 。可以手动复制进去。 打开cocos2dx引擎目录 进入cocos2dx\platform\android\java\src下。把里面的org文件夹全复制到eclipse的src里去就行了。

第二个是AndroidMainifest.xml里一处。
11[img]
[img]http://dl2.iteye.com/upload/attachment/0092/1968/3de685ce-ccde-3d95-8ba3-87aba326429a.jpg[/img]
[/img]

以前是icon。改成ic_launcher。因为图标文件就叫这个。

好了。

最后!

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

把apk直接按到手机上吧。

总算结束了。只想说一句话,我去年买了个表。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值