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

最近笔者在学习如何为游戏引擎添加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的测试用例

也许吧,谁知道呢?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容