费了九牛二虎之力,终于把Cocos2d在Andriod上跑通了。在安装期间碰到了各种各样的坑,这里我把这些坑总结一下。
通过Cocos2dx官方资料知道要在Andriod下搭建环境需要四样前置条件:
- cygwin
- ndk
- cocos2dx
- android-sdk-tools
上述前置条件各自的用途请自行google。这里只描述搭建环境中所遇到的坑。
1.cygwin
安装cygwin
坑1-1.通过一番搜索,包括小白的Blog,装起来那叫一个慢啊~经常到一半中断,总之下了2天没下完,换镜像,下ISO什么法子都用了,还是安装失败阿。
经过lz不懈的努力找个一个国内的镜像^-^,见图1-1:
图1-1
各位,放弃cygwin download without installing,直接下载工具开起来,mirrors.163.com/cygwin,然后Install from Local Dir吧~(实践证明提速20倍以上)。
打开cygwin,查看gcc、g++版本,Pass,如图1-2:
图1-2
2.ndk
android developer官网直接下载ndk-r8d,版本没有要求r5,r6,r8都行,cocos2d-x官网的教程使用r5,本文使用r8。
解压ndk-r8d,设置ndk-r8d的环境变量。两种方式设置:
- Windows--环境变量--%Path%
- Cygwin--.bash_profile,如图2-1:
图2-1
见图2-1,注意Linux和Windows路径上的区别,/cygdrive/盘符/ndk-r8d安装路径。这样就完成配置。启动cygwin,通过图2-2操作,测试是否配置成功:
图2-2
见图2-2,看到*.so文件代表编译通过,至于指令含义,本文不做注解,请参考《某鸟的私房菜》...
3.cocos2dx
官网下载cocos2dx,gvim打开create-andriod.bat批处理文件,如图3-1:
图3-1
cygwin,androidtools,ndkroot,三个环境路径设置,没啥说的直接对应安装路径即可。保存后执行.bat。
坑3-1,有时候.bat会找不到ndkroot的路径,显示Couldn't find ndk,经过反复尝试发现改变ndk的默认路径名[android-ndk-r8d],是有可能性会找不到ndk的,也许是Bug,这里为了方便写Blog我就使用默认路径,事实是在生产环境中经过打包肯定不会保留默认路径的。
指定包名,项目名,坑3-2,通过上述设置后执行会根据项目名生成对应的目录结构,如果指定文件夹内对应目录内存在文件,生成操作肯定失败。所以请保证指定的项目名是空的,或者将原项目改名。如图3-2,可以看到基于cocos2d-x的Andriod项目结构生成成功:
图3-2
查看目录,如图3-3,看到整个项目结构都已生成:
图3-3
官方说法在此路径下ndk_build build_native.sh即可编译通过cocos2dx然后adt里直接加载已存在项目就Over了,事实是这里还有坑,我们来看坑3-3,先上图3-4:
图3-4
看一下build_native.sh的代码,请注意ndk,project的Root路径。解决路径问题执行到第二段也可能失败,报错信息提示cygwin/gmsl wordlist 执行第二个参数的函数失败。google了一下,没查到解决办法,想了下解决办法,手动Copy或用Win环境下的批处理执行。Pass。最后,也就是#build段这句指令直接在cygwin里直接指令输入执行,Pass。这样就替代了ndk_build build_native.sh的操作。
4.android-sdk-tools
Android developer官网直接下载adt-bundle,直接运行>>New andriod project exist code>>Build>>gbtouch.apk。USB连接手机将apk Copy至手机安装。Cocos2dx build on anriod完成,见实际效果图,图4-1,4-2:
图4-1
图4-2
坑4-1,adb冲突问题,原因有三:
- 本机连接了外接andriod设备,如果有请中断物理连接。
- 本机安装有91助手,360助手,抢占adb进程,如果有如上软件请关闭后重启。
- adb文件损坏,请打开sdk\tools\adb_has_moved.txt文件,里面详细记录了发生错误的原因,根据原因重置platform-tools\adb.exe。
至此,Cocos2dx在Android下的环境搭建完成。
参考 http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Chapter_1_-_How_to_Create_a_New_cocos2d-x_project_on_multi-platforms
转载时,请注明本文来源:www.cnblogs.com/tmywu
作者: 老鱼678
mail:tommywu23@126.com