`
modabobo
  • 浏览: 510027 次
文章分类
社区版块
存档分类
最新评论

cocos2d-x移植-adds2line.sh的使用篇

 
阅读更多

当在android设备上好好的运行着用cocos2d-x的游戏时,突然,就退出了游戏。让人抓狂啊!找了半天不知道哪里出了错误。

只见在logcat 中出现一条红色的error,如下图

Fatal singnal 11 你妹,这是什么玩儿。 google 百度,半天。 只有 一个翻译“致命信号11” 。dogshit!!

编写android 代码惯了,只对红色 的error 级别的日志感兴趣了,完全忽略了绿色的debug级的日志。

仔细检索了一下日志 发现了一些有规律的绿色日志 如下





这它码不是 我的项目的包名。com.koolearn.hallowmastTTT 吗?哦它吗 如何是好。


网上寻找了一下如何搞定这个问题 ,热心的网友 说 ndk 里有个工具 adds2line 可以从这个日志里找到你代码错误的地方!

我他妈不信。难过抱着试试的态度。我给查了一下adds2line 的用法 就总结如下了


1.制作一个能常用的脚本


#!/bin/sh

$NDK_ROOT/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/arm-linux-androideabi-addr2line -C -f -e obj/local/armeabi/libgame.so $1


打开文本编辑器复制上面的代码 并保存为adds2line.sh 放在你的工程目录下 ,当然是你的android项目工程根目录。 那个项目需要,就把它复制一份放在新项目里,脚本内容我就不解释了,想了解的上网查查。

如下图




2.使用这个脚本


打开您的终端 就这东西 ,进入您的android项目根目录 , 用adds2line.sh + 地址


命令步骤如下


localhost:cocos2d-2.0-x-2.0.4 lili$ cd ~
localhost:~ lili$ cd /Applications/androidsoft/cocos2d-2.0-x-2.0.4/HallowmasTTT/
localhost:HallowmasTTT lili$ ls
Classes Resourcesproj.android
localhost:HallowmasTTT lili$ cd proj.android/
localhost:proj.android lili$ ls
AndroidManifest.xml build.xmllocal.propertiesres
adds2line.sh build_native.shndkgdb.shsrc
ant.properties genobj
assets jni proguard-project.txt
bin libs project.properties
localhost:proj.android lili$ ./adds2line.sh 001122cf
PurpleHouseLayer::littleRock()
/Applications/androidsoft/cocos2d-2.0-x-2.0.4/HallowmasTTT/proj.android/jni/../../Classes/Game/s198/PurpleHouseLayer.cpp:292

localhost:proj.android lili$
localhost:proj.android lili$


红色部分就是我代码错误地方。。在PurpleHouseLayer.cpp 292 行出错。。赶紧到xcode中把它修复吧 ^8^!


好吧就此结束。。大笑












有的同学就不满意了。博主你妹的,坑同学我!你妹哪来的001122cf dogshit! fuck out!疑问


这个才是关键之出得意


奋斗好吧 给你们看看 ,看下面的日志


10-17 11:10:54.257: I/DEBUG(12788): backtrace:
10-17 11:10:54.257: I/DEBUG(12788): #00 pc 001565a2 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCDictionary::objectForKey(std::string const&)+21)
10-17 11:10:54.257: I/DEBUG(12788): #01 pc 00156fc9 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCDictionary::valueForKey(std::string const&)+16)
10-17 11:10:54.257: I/DEBUG(12788): #02 pc 00188c15 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCParticleSystem::initWithDictionary(cocos2d::CCDictionary*)+80)
10-17 11:10:54.257: I/DEBUG(12788): #03 pc 00188b79 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCParticleSystem::initWithFile(char const*)+148)
10-17 11:10:54.257: I/DEBUG(12788): #04 pc 0018e66d /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCParticleSystemQuad::create(char const*)+40)
10-17 11:10:54.257: I/DEBUG(12788): #05 pc 001122cf /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (PurpleHouseLayer::littleRock()+34)
10-17 11:10:54.257: I/DEBUG(12788): #06 pc 001425cd /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCCallFunc::execute()+80)
10-17 11:10:54.257: I/DEBUG(12788): #07 pc 00142575 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCCallFunc::update(float)+20)
10-17 11:10:54.257: I/DEBUG(12788): #08 pc 00143bc1 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCSequence::update(float)+452)
10-17 11:10:54.257: I/DEBUG(12788): #09 pc 00143399 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCActionInterval::step(float)+368)
10-17 11:10:54.257: I/DEBUG(12788): #10 pc 0014cd63 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCActionManager::update(float)+122)
10-17 11:10:54.257: I/DEBUG(12788): #11 pc 00136ae1 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCScheduler::update(float)+104)
10-17 11:10:54.257: I/DEBUG(12788): #12 pc 0015e5bb /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCDirector::drawScene()+54)
10-17 11:10:54.257: I/DEBUG(12788): #13 pc 0015fb7b /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (cocos2d::CCDisplayLinkDirector::mainLoop()+54)
10-17 11:10:54.265: I/DEBUG(12788): #14 pc 00198425 /data/data/com.koolearn.hallowmastTTT/lib/libgame.so (Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeRender+20)
10-17 11:10:54.265: I/DEBUG(12788): #15 pc 0001deb0 /system/lib/libdvm.so (dvmPlatformInvoke+112)
10-17 11:10:54.265: I/DEBUG(12788): #16 pc 0004d103 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394)
10-17 11:10:54.265: I/DEBUG(12788): #17 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted)
10-17 11:10:54.265: I/DEBUG(12788): stack:


在backtrace: 和stack:之间 的日志 只见 #xx pc + 地址 .so动态库 (具体空间::类名::函数名+行数)

最上面的#00是抛出的最底层,#17是抛出的最顶层,想必同学们也看到了红色那一行。是的!就是他了 pc 后面的 001122cf 。。 就 pc 后面的管用。其他地方的地址试了 没用。

看了两三遍红色那一行上面下面错误的地方。估计了一下出错原因

CCParticleSystemQuad::create 粒子系统创建

cocos2d::CCDictionary::valueForKey 字典找资源

估计是粒子系统没有找到某个粒子系统配置文件


代码中是这样的

CCParticleSystemQuad* fireParticle =CCParticleSystemQuad::create("winFlash.plist");

这个配置文件是winFlash.plist


找到原因了。我的 Resource文件夹下没有这个配置文件。加上就解决了。大笑


呵呵。。


总结:

用adds2line 就是找到你代码出错的地方,一般cocos2d-x库是不会有错的。大部分是自己代码有错误。寻找出错的地方时找到自己的类和函数,并且仔细查看上下错误的地方。估计错误的原因。一般这些问题都能非常快速锁定的。快速解决的。


谢谢同学们 阅读。

10 月31 推出《 多纳学英语:万圣节》





分享到:
评论

相关推荐

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    cocos2d-x实战项目

    cocos2d-x实战项目 01.cocos2d-x原理及环境配置.rar 03.cocostudio使用方法及UI控制.rar 04.XML文件读取与骨骼动画.rarcocos2d-x实战项目 01.cocos2d-x原理及环境配置.rar 03.cocostudio使用方法及UI控制.rar 04.XML...

    Cocos2d-x游戏编程——C++篇 .iso

    Cocos2d-x游戏编程——C++篇(电子工业出版社,徐飞 著)书本配套的光盘代码,

    cocos2d-x-2.1.5

    cocos2d-x-2.1.5

    cocos2d-x事件类

    在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。 在下通宵了一个晚上,写出了该事件类。 谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类...

    Cocos2d-x 3.x游戏开发实战pdf含目录

    Cocos2d-x 3.x游戏开发实战pdf含目录,内容详细,强烈推荐给大家。

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    精通COCOS2D-X游戏开发 基础卷_2016.4-P399-13961841.pdf

    精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发

    大富翁手机游戏开发实战基于Cocos2d-x3.2引擎

    资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...

    Cocos2D-X游戏开发技术精解.pdf

    《Cocos2D-X游戏开发技术精解》详细介绍如何使用Cocos2D-X引擎开发自己的移动平台游戏。全书共15章,主要内容包括:Cocos2D-X引擎简介;如何建立跨平台的开发环境;引擎的核心模块——渲染框架;如何实现动态画面和...

    cocos2d-x-3.2旧版引擎下载

    cocos2d-x-3.2下载,不多说。或者可以下载另一个资源 cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5) http://download.csdn.net/download/crazymagicdc/9982656

    Cocos2d-x高级开发教程

    Cocos2d-x是移动跨平台开发最流行的游戏引擎,而本书是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关...

    cocos2d-x-3.0 类图

    这是我重新弄的cocos2d-x-3.0的类图.之前别人兄台弄的,有些不全面,有些地方错误.我这个可以说是最新的了.每个类添加了中文的详细注解,同时也添加了中文的类名称翻译.这样对cocos2d-x-3.0的框架比较好上手. 有兴趣的...

    cocos2d-x 3.0

    cocos2d-x 3.0 人物行走 . 包里有代码和 图片资源.

    Cocos2D-X游戏开发技术精解

     《Cocos2D-X游戏开发技术精解》详细介绍如何使用Cocos2D-X引擎开发自己的移动平台游戏。全书共15章,主要内容包括:Cocos2D-X引擎简介;如 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    Cocos2d-x-3.x游戏开发之旅

    Cocos2d-x-3.x游戏开发之旅-钟迪龙著 全新pdf版和附书代码(代码为工程文件,可复制) 附带目录标签

    Cocos2d-x.by.Example.Beginners.Guide.2nd.Edition.1785288857

    Title: Cocos2d-x by Example: Beginner’s Guide, 2nd Edition Author: Roger Engelbert Length: 250 pages Edition: 1 Language: English Publisher: Packt Publishing Publication Date: 2015-04-30 ISBN-10: ...

    cocos2d-x3D扩展3DToolKitforcocos2d-x.zip

    3D ToolKit for cocos2dx 是一个简单的cocos2d-x 3D扩展,可以方便地在cocos2dx环境中创建3D图形。 基于cocos2d-x 2.2开发。 已实现功能: 1,向量和矩阵运算。 2,扩展的3D相机。(支持 透视投影 和 ...

    cocos2d-x 3.x游戏开发实战光盘

    cocos2d-x 3.x游戏开发实战光盘

    cocos2d-x 2.x action集合(详细注释分类)

    cocos2d-x 2.x action集合(详细注释分类)

Global site tag (gtag.js) - Google Analytics