【问题标题】:How to get the Stack-trace of golang in the Crashlytics如何在 Crashlytics 中获取 golang 的 Stack-trace
【发布时间】:2018-11-19 07:48:24
【问题描述】:

我们的app是一个Android app,里面有一个golang写的JNI。我们使用 Fabric Crashlytics 来跟踪 carshes。

但是,在 JNI 发生崩溃后,我们无法在 Crashlytics 中获取 Stack-trace 信息。在Java中,我们可以得到它。

在 iOS 应用程序的 Object-C 中,我们可以上传 dSYM 文件来映射功能。但是我可以在哪里使用 Golang?

Fabric 支持吗?

现在,在 Crashlytics 中,我们只能看到以下内容:

Crashed: Thread
0  libc.so                        0xf6f4c778 (Missing)
1  libc.so                        0xf6f26791 (Missing)
2  libc.so                        0xf6f23933 (Missing)
3  (Missing)                      0x15c791e6 (Missing)
4  libgojni.so                    0xdddd910e (Missing)
5  libc.so                        0xf6f214ee (Missing)
6  (Missing)                      0x15c791e6 (Missing)
7  libgojni.so                    0xde00a8de (Missing)
8  libgojni.so                    0xde00a93e (Missing)
9  libgojni.so                    0xdddd8ed6 (Missing)

【问题讨论】:

    标签: android go stack-trace crashlytics google-fabric


    【解决方案1】:

    我们已经解决了这个问题。

    背景:

    我们构建一个 Android 应用,它有一个由 go 编写的 JNI,它是由 gomobile 构建的。 我们使用 Fabric Crashlytics 来监控崩溃信息。 但是在 Crashlytics 中,我们看不到 JNI 中出现的完整堆栈跟踪信息。

    解决办法是:

    首先,请检查您的NDK版本,必须是r17c或更高版本。

    在 gomobile 命令中添加参数--work,例如gomobile bind --work YOUR-SOURCE-CODE-PATH WORK=TEMP-PATH

    构建成功后,将jniLibs中的所有文件移动到YOUR-PROJECT-PATH/app/obj

    最后,执行 Fabric 文档中列出的步骤。

    希望我们的经验可以节省您的时间:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 2011-05-30
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多