Cocos2d-X Android移植

官网教程

D:\Cocos2d-X\cocos2d-x-2.2.0\samples\Cpp\HelloCpp\proj.android\README.md
这又是一个教程,不过是在项目里面的而已,与网站那个有点区别

使用的工具版本:
Win7旗舰版
VS2012
Cocos2d-X 2.2.0
Python 2.7.5
Cpp
Cygwin 2.830
Android NDK r9b
Android SDK(adt-bundle-windows-x86-20131030.zip)
jdk(Java SE Development Kit 7u45)
Eclipse Standard 4.3.1
CDT 8.2.1 for Eclipse Kepler
ADT 22.3.0 


VS2012:

去官网找旗舰版,然后再百度CDKey就好了啦
下载并安装,需要什么插件之类的,自己搞定,反正对于运行游戏没有影响


Cocos2d-X 2.2.0

去官网下该版本,然后解压缩,这不是废话么
不要放在C盘里面,否则可能会造成某些特权相关的问题


Python 2.7.5:

下载安装,环境路径什么的自己留意一下就好了啦
至于如何生成新项目,自己去找一下吧


Cpp:

这里我们使用新建的是CPP项目,Lua项目应该差不多的吧
新建项目,然后让VS2012运行一遍看看吧


Cygwin  2.830

去官网下载


运行后选择从网络下载更新,没什么好说的了吧

安装地址和对象

这是下载时候的缓存路径,会在里面新建一个文件夹
可以备份,供以后使用

没什么好说的了吧

选择从哪个地址下载,看着办,慢的话就取消重新再来

这地址很给力的说

这样子选择后就会保持原有的啦,就可以专心下载需要的


不过我们还是这样子选择,先把默认的给装了先吧


在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install),其它均为默认状态。(其实NDK需要的不多,主要autoconf2.1、automake1.10、binutils、gcc-core、gcc-  g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make )

好了,这样子我们这次就可以只安装自己的啦


运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。

然后依次输入gcc –v,g++  --version,make –version,gdb –version进行测试,(注意空格和-)如果都打印出版本信息和一些描述信息,这说明cygwin安装成功了


把 D:\cygwin\bin 配置到系统path环境变量中去


Program bash is not found in PATH

Program "sh" not found in PATH

这样子就可以解决这个问题了啦


很爱怪的问题,不管是桌面生成的快捷方式还是菜单上得均无效

D:\cygwin\var\run\utmp -i /Cygwin-Terminal.ico -

地址问题?

D:\cygwin\Cygwin.bat -i /Cygwin-Terminal.ico -

反正我改成这样子貌似就可以了啦

D:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -

这个地址会更好?



Android NDK r9b:

都快说到厌了啦,去官网下载
下载完解压到D盘去
然后添加NDK_ROOT到环境变量
D:\android-ndk-r9b
其实在这里添加主要是为了Lua项目的移植
这里添加了之后下面的那些添加NDK_ROOT就不需要了啦


Android SDK(adt-bundle-windows-x86-20131030.zip):

官网风景无限好啊,还是去官网下载吧


里面一堆垃圾着实令人讨厌

解压完之后,双击运行SDK Manager
将会弹出

好像是因为Android 2.2继承了android的生成,所以推荐先把2.2给装了

注意,如果连接不上的话,在C:\WINDOWS\system32\drivers\etc的hosts文件中,最后一行添加74.125.237.1 dl-ssl.google.com
这样子连接上谷歌就会很快了啦


jdk(Java SE Development Kit 7u45):

去官网下载
很麻烦,每个版本的不会检查上一个版本,就是说不可以直接覆盖掉
所以一般地址改成D盘就算了,其它版本地址就无视了吧

装到一半的时候,会弹出安装jre,这时候也改成D盘即可

安装后,配置环境变量:
新建环境变量:JAVA_HOME 值为:D:\Program Files\Java\jdk1.7.0
新建环境变量:CLASSPATH  值为:.;%JAVA_HOME%\lib;(注意:点号表示当前目录,不能省略)
在系统变量Path的值的前面加入以下内容:%JAVA_HOME%\bin;(注意:这里的分号不能省略)到这里,JDK安装完毕。 
单击“开始”—>“运行”—>输入:cmd命令,在CMD窗口中输入:java -version  出现如下界面,就表示安装成功:

不怕麻烦的话最好分别也试一下java和javac


Eclipse Standard 4.3.1:

老规矩,去官网下(怎么老是有人不爱去官网下载呢,真是奇葩)
下载完之后解压到D盘去


首次运行需要设置这玩意,超烦的说

打开后
点击Help,选择Install New SoftWare


CDT 8.2.1 for Eclipse Kepler:

去官网下载吧,记得对应自己的Eclipse版本号,否则出事了我可不管啊

打开插件安装界面
点击这玩意
刚刚下载的CDT压缩文件是不用解压的,直接选择
别忘了勾选上啊
点击next开始安装吧
转完就重启吧 yeah


ADT 22.3.0 :

官网提供了网址,不用下载,方法类似上面
https://dl-ssl.google.com/android/eclipse/
如果不行的话,将https改成http


重启后会弹出告示Android SDK找不到之类的提示
如上设置即可,就是加上自己sdk的路径


开始Android移植:


首先需要导入自己之前新建的工程


D:\Cocos2d-X\cocos2d-x-2.2.0\projects\Hello\proj.android
这是导入的路径,根据自己新建的项目来更改
Copy projects into workspace不要选,否则的话需要手动复制某些缺少的文件到workspace,不推荐

修改Android.mk

具体要如何修改,去查看写过的关于Android.mk的文章

可以看到这里提示我们定义NDK_ROOT

右击自己导入的工程,选择Properties

路径是自己ndk的根目录,记住NDK_ROOT的名称不能更改
Add to那个我暂时还没知道有什么区别

再看看这里,上面的是选择启动的版本
下面是Library,因为我们还没有导入,所以是错误状态

这里也有提示


现在进行导入
D:\Cocos2d-X\cocos2d-x-2.2.0\cocos2dx\platform\android
这是路径


导入之后就没有这个问题了啦


我们需要新建一个安卓模拟器

这个根据需求来建吧

好了,现在基本的都搞好了
这时候选择Run-Run as Android Application
如果没有什么问题的话,Cygwin应该会开始编译(第一次运行的时候,运行过一次,没有更改就不会重新编译的了)
如果第一次运行没有进行编译,要不就是出错,要不就是因为NDK_ROOT没有设置好

这是最基本的输出信息
这是已经编译过一遍之后的输出信息


另外写一下官网的做法(变流畅了?只是碰巧而已么?使用bluestacks的时候,原本左上角会有载入什么之类的显示的,现在这样子之后就貌似没有了?):

Add this line `none /cygdrive cygdrive binary,noacl,posix=0,user 0 0` to `Cygwin\etc\fstab` file.
不知道第一行要不要删掉好
作用不明

 Path Variable `COCOS2DX`: 
* Eclipse->Preferences->General->Workspace->**Linked Resources**
* Click **New** button to add a Path Variable `COCOS2DX` pointing to the root cocos2d-x directory.
作用不明,发现不写也行,考虑到里面有绝对路径,所以抛弃

C/C++ Environment Variable `NDK_ROOT`: 
* Eclipse->Preferences->C/C++->Build->**Environment**.
* Click **Add** button and add a new variable `NDK_ROOT` pointing to the root NDK directory.
* Only for Windows: Add new variables **CYGWIN** with value `nodosfilewarning` and **SHELLOPTS** with value `igncr`
NDK_ROOT大家都知道的啦
另外两个可能是为了去除之前的waring
明显少了些warning,但是貌似没有什么影响?


### Running project from Command Line

    $ cd cocos2d-x/samples/Cpp/TestCpp/proj.android/
    $ export NDK_ROOT=/path/to/ndk
    $ ./build_native.sh
    $ ant debug install

表示上面的真心看不太懂啊,反正我下面的写法就可以了啦
$ cd /cygdrive/d/Cocos2d-X/cocos2d-x-2.2.0/projects/lua/proj.android
$ export NDK_ROOT=d:/android-ndk-r9b
$ ./build_native.sh

If the last command results in sdk.dir missing error then do: 

    $ android list target
    $ android update project -p . -t (id from step 6)
    $ android update project -p cocos2d-x/cocos2dx/platform/android/java/ -t (id from step 6)

这些没有什么好说的了吧


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值