Skip to main content

FAQ

1. 为什么异常堆栈提示未翻译?

异常堆栈提示未翻译的主要原因是相应的符号表没有上传。

  1. 可以点击 去上传 切到符号表Tab,根据指引上传指定的符号表。

  2. 确认符号表上传成功后,点击问题详情顶部的 手工还原 进行堆栈重还原。

Img 2

提醒

手工还原堆栈后,异常堆栈发生了变化,根据异常堆栈生成的个例特征也会发生变化,会使得重还原后的个例,聚合到其他的Issue中。

Img 3

2. 为什么网页上传,拖拽文件失败?

无论是SO符号表,dSYM文件还是Java mapping文件,都需要用户先用zip压缩后,再拖拽上传,上传组件只支持zip文件,不支持其他格式的文件。

  • 对于mapping文件,一定要命名为mapping.txt,再用zip压缩成mapping.txt.zip,然后拖拽到上传区域中。
  • 对于so文件,先将要上传的so文件用zip压缩,如libnative.so,zip压缩成libnative.so.zip,然后拖拽到上传区域中。
  • 对于dSYM文件,先将要上传的dSYM文件用zip压缩,如 BuglyPro.dSYM, 压缩成 BuglyPro.dSYM.zip 后,拖拽上传 BuglyPro.dSYM.zip 文件。

3. 为什么网页上传符号表,提示成功,符号表文件的状态还显示未上传?

这种情况有两种可能:

情况一:符号表没有真正上传成功,需要参考前一个问题 (为什么网页上传,拖拽文件失败?),正确命名以及压缩符号表文件。

情况二:符号表文件已经上传,但是入库时间有延时,需要重新刷新页面。

4. 为什么上传mapping文件,提示成功,但是找不到上传的符号表文件?

这种情况,先尝试刷新页面,如果刷新页面后,依然找不到上传的符号表,或者符号表Tab显示该符号表文件未上传,可能是mapping文件没有正确命名。

  1. 对于mapping文件,一定要命名为mapping.txt,再用zip压缩成mapping.txt.zip,然后拖拽到上传区域中。
  2. mapping文件以 APP版本号 + 构建号 作为Key来识别,请查看版本号和构建号是否填写正确。

5. 上传符号表为什么需要java环境 ?

我们符号表提取工具依赖于java环境,符号表工具只提取必要的信息,可以大幅度减少需要上传的文件体积.

6. 符号表上传失败提示uuid不匹配 ?

每次构建,符号表的uuid都会发生改变,所以需要当次构建生成的符号表文件才能还原当次构建后上传的crash.

7. 不配置还原符号表会影响异常上报吗?会有什么影响 ?

不会影响异常上报!没有符号表,堆栈无法还原成代码中的类或方法及源文件行号,会对异常合并存在一定影响.

8. 每个版本都要配置符号表吗 ?

是的,每个App版本都需要对应一份符号表(Java的Mapping文件及SO的Symbol文件,applec++的dsym文件),配置只对设置的版本有效,重复配置将会覆盖.

9. Java崩溃堆栈中没有行号信息(如出现Unknown Source)?

在proguard配置中添加keep行号的设置,如:

-keepattributes SourceFile,LineNumberTable

10. Unity android项目需要配置符号表吗 ?

  • Unity项目的Android工程生成的Java代码只有几个入口类,没有proguard混淆必要,所以无需配置符号表(即mapping信息)。
  • Unity项目的Android工程中默认加载的几个Native库(libmono.so,libunity.so等)没有的debug版本,所以开发者也无法获得对应的符号信息进行配置。

注意: 如果开发者有自己开发独立的功能组件(.jar或.so)集成到Unity项目中,需配置相应的符号表信息(开启了“Development Build”选项,development文件夹里面的就是debug版本的so,可以用Bugly的符号表工具生成符号表文件并上传到版本管理).

11. 为什么我的符号表已经正确上传,堆栈还是不可读?

  • 针对这种情况的解决方法:建议重新上传符号表,然后点击 手工还原 触发重新还原。

  • 如果重新上传了仍然不行,这极有可能是符号表或抓取的堆栈本身问题,可以自己线下用地址还原看看系统抓的堆栈是否可以还原。

12. 怎样判断上传的符号表是否有效?

看是否有还原出源码文件名和行号。

13. 文件非法是什么意思?怎么处理?

上传的文件格式不对,系统扫描到不是符号表文件。 系统扫描规则是:遍历到一级文件目录下的so文件,否则认为非法。建议用单个so文件上传,后续版本会优化扫描规则。