美文网首页程序员
使用Android Studio编译cocos2dx的测试用例

使用Android Studio编译cocos2dx的测试用例

作者: 闪电的蓝熊猫 | 来源:发表于2018-04-06 09:41 被阅读543次

最近笔者在学习如何为游戏引擎添加Android平台的支持。首先从已有的游戏引擎开始研究,将引擎中的示例用Android Studio打包成apk文件。笔者选用了目前风头正紧的cocos2dx,版本是最新的3.16,选用的NDK和Android Studio版本也是其推荐的。

环境配置

AS和NDK的安装


首先,老老实实地根据cocos的Release Note下载Android Studio 2.3.3以及NDK r14,AS历史版本下载网址是:http://www.android-studio.org/index.php/download/hisversion,NDK下载网址是:https://developer.android.google.cn/ndk/downloads/older_releases.html


下载完成后,安装AS,使用默认的安装路径即可。解压android-ndk-r14b-windows-x86_64.zip,将其放到一个没有中文的目录之中,例如D:\Android\android-ndk-r14b

cocos2dx的安装

这个没什么好说的,下载3.16版本,将其解压到一个没有中文字符的路径之中

配置模拟器

笔者使用的是夜神模拟器,下载地址是:https://www.yeshen.com/。安装完成后,进入其安装目录,例如D:\Program Files (x86)\Nox\bin,在该目录下打开命令行界面,输入这一行命令:

nox_adb.exe connect 127.0.0.1:62001

这行命令的作用是将adb连接到模拟器,这样我们的AS就可以用夜神调试了。回车之后发现并没有出现连接成功的提示,这是怎么回事呢?



原来是没法连接上这个端口,因为我们还没开模拟器嘛。简单,打开模拟器,再运行一下这个命令,就成功了


导入cocos2dx测试用例

打开Android Studio,选择"Import project(Eclipse ADT, Gradle, etc.)一项,找到之前cocos2dx解压的目录,进入tests\cpp-tests路径,选择proj.android-studio文件夹,经过了漫长的等待之后,点击界面上方的三角按钮,在弹出的对话框中选择夜神模拟器




再经过漫长的等待之后,我们的apk就在模拟器中运行起来了。


似乎很简单是不是?

当然不会这么简单了,因为笔者把所有遇到的问题都解决了,写这文章的时候已经是再次运行了,自然不会有问题。至于中间的艰辛,嗯,只记得两点了:

  • 1、解决Failed to open zip file问题:将distributionUrl=https改成distributionUrl=http(详细解释请往下看)
  • 2、Waiting for target device to come online问题:不使用AS中创建的模拟器,使用夜神作为调试用模拟器(笔者也是一脸懵逼,难道是笔记本性能太差了???)

就是一个好了伤疤忘了疼的家伙,各位读者,打我可以,千万别打脸啊,还要靠它吃饭呢!

为什么不用最新的Android Studio?

笔者是一个挺顽固的人,首先想到的就是用最新的AS(3.0.1版)去编译cocos2dx的测试用例,但是,经过了无数次的失败之后,终于发现一件事,那就是我无法用最新版的AS去编译打包,这真是让人沮丧。

不过,虽然没有成果,解决问题的过程还是那么令人心旷神怡,在此也做一个记录,如果读者成功地使用AS(3.0.1版)编译了cocos2dx的测试用例,请务必告诉笔者,非常感谢!

Failed to open zip file问题


这个问题产生的原因是AS自己下载的gradle-3.3-all.zip有问题,解压失败。可以尝试3种方法去解决:

  • 1、将gradle/wrapper/gradle-wrapper.properties文件中的gradle-3.3-all.zip改成你之前使用过,可以正常运行的版本(例如gradle-2.2-all,当然前提是你之前用过)


  • 2、直接从官网下载gradle-3.3-all.zip压缩包,放到下面的目录中:C:\Users\Administrator.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9。下载地址是:http://services.gradle.org/distributions/
  • 3、将gradle/wrapper/gradle-wrapper.properties文件中distributionUrl=https改成distributionUrl=http(去掉最后的s)



    笔者尝试过后发现,第2种方法时灵时不灵,推荐使用第3种方法,因为即便是我们下载好了gradle-3.3-all.zip文件,AS有时还是会去连接网站下载这个文件,如果下载不了就报错,无法继续下去。不清楚是什么原因,还是把网址改成http最靠谱。(什么,你问我为什么不用第1种方法?这还用说吗,我之前根本没用过AS啊!)

Android Studio自身的模拟器会有问题,一直卡在waiting for 上面,网上找了些解决方法都无法解决问题,可能是因为机子性能的问题,毕竟是笔记本,性能差点也是可以理解的,所以我选用了夜神模拟器作为调试用模拟器。

INSTALL_FAILED_NO_MATCHING_ABIS错误

这是因为cocos2dx测试用例生成的apk文件需要运行在ARM架构的模拟器上(最新版本提供的模拟器的CPU架构是x86,无法直接运行),将它打包放到其他的模拟器(例如夜神)上即可正常运行,当然,你也可以新建一个ARM架构的模拟器,看自己的喜好了。

网上也有资料说将app/jni/Application.mk文件中的APP_ABI := armeabi改成APP_ABI := armeabi,x86可以,但笔者尝试了之后发现不行,就采用了换模拟器的方法。

也许,你现在用AS(3.0.1版)也能跑通cocos2dx的测试用例

也许吧,谁知道呢?

相关文章

网友评论

    本文标题:使用Android Studio编译cocos2dx的测试用例

    本文链接:https://www.haomeiwen.com/subject/hxencftx.html