之前一次测试 有很多闪退 大部分都是 SIGSEGV(SEGV_MAPERR)
真是头疼 从未涉及过这类问题
挠挠头 开始刨坑之旅
这是U3D 5.2.2的版本
首先要解决这些这些看不懂的堆栈信息 ,bugly意思是 提交制表符文件 来解析 堆栈内存值来找到相应方法位置
这个制表符文件让我头疼了一阵 我之前是解压APK 找到lib文件下的l.so文件 通过bugly上面的方法来获取制表符文件提交到网站上 但是最后出来的 和上图一样 根本没找到位置就这些闪退也就暂时搁置了
突然有一天我在用手机测试性能 进游戏突然闪退 但是连接logcat 看到了一些堆栈信息
心想这个问题概率太高 再尝试下解决
http://dev.qq.com/topic/5901b8df55c328b21aeb6d74 这个BUGLY上纤细介绍 上面的信息的简介
通过 各种神奇搜索 准备使用 NDK库来定位错误信息位置
方法
1.下载NDK (百度搜索下 官网下载即可)
2.解压APK内的.so文件(解压后搜索 下文件夹下.so文件 就是了)
3.通过命令行
进入 文件夹 D:\android-ndk-r14b-windows-x86_64\android-ndk-r14b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\
执行这个命令
用这个addr2line 参数 -c -f -e .so的文件 后面是堆栈地址(.so我就直接放到了同一个目录)
bin>arm-linux-androideabi-addr2line -C -f -e libunity.so f7218610(可以输入多个地址 会全部显示出来)
失败了。。返回都是 ????问好
想想也是BUGLY内部的方法大概也是这样 都没输出到位置 我这样失败也是正常
突然想到 这是release 版本 也许加密 混淆了 我就又打了debug版本的包 解压APK
发现果然.so文件从14M 变成了 20M 突然我就兴奋了 再执行上一步操作 堆栈出来了
果然如此行了 查问题吧 这个坑是抛出来了 开始抛下个坑吧