Crashlytics不显示NDK报告的堆栈跟踪

时间:2019-05-18 13:29:13

标签: android android-ndk crashlytics linphone

我编译了Linphone项目。它在大多数时间都有效,但有时会在本机层崩溃。我按照Crashlytics documentation中的说明启用了NDK崩溃报告。它有效,但不显示问题的堆栈跟踪。它显示如下: Information shown in Crashlytics for native exceptions

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

此处是Fabric / Firebaser-

基于该屏幕截图,您设置使用Crashlytics捕获NDK崩溃的设置应该基本上是正确的,但缺少符号化本地崩溃堆栈跟踪所需的符号。 Crashlytics需要您的本机库的两个版本-一个删除了符号的版本,另一个保留了(未删除)符号信息的版本。一旦找到所需的库对(每个本机库,所支持的体系结构一对),它将生成符号文件。 Crashlytics获取该信息可能会遇到一些问题:

  • Crashlytics会寻找特定的项目结构来默认查找您的库:https://docs.fabric.io/android/crashlytics/ndk.html#specifying-the-path-to-debug-and-release-binaries。如果找不到该结构,则可能无法生成符号文件。您可以使用build.gradle中的androidNdkOutandroidNdkLibsOut字段来手动控制已剥离和未剥离的库的路径。
  • 首先检查所使用的库是否提供了表示崩溃的必要符号。您可以运行file <path-to-binary>来查看是否删除了库。
  • 有时,某些构建过程可能会进一步去除符号或进一步优化您要包含在应用程序中的库,从而导致符号化失败。

您的crashlytics.log文件将包含有关Crashlytics尝试解析项目并生成符号文件的更多信息。您可以在这里检查:

在Linux / Windows上:〜​​/ .crashlytics / com.crashlytics.tools / crashlytics.log

在Mac上:〜​​/ Library / Caches / com.crashlytics / com.crashlytics.tools / crashlytics.log

如果您仍然遇到获取符号化堆栈跟踪的问题,请联系support@fabric.io或向https://firebase.google.com/support提交案例。