如何在 Crashlytics 中获取 golang 的 Stack-trace
How to get the Stack-trace of golang in the Crashlytics
我们的应用是一个Android应用,它有一个golang写的JNI。我们使用 Fabric Crashlytics 来跟踪汽车。
但是,在 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)
我们已经解决了这个问题。
背景:
We build a Android app, it has a JNI writed by go, which is build by gomobile.
We use the Fabric Crashlytics to monitor the crash information.
But in the Crashlytics, we could not see the full stack trace information which occurred in the JNI.
解决方案是:
At the first, please check your NDK version, it must be r17c
or more.
Add a param --work
in the gomobile command, like gomobile bind --work YOUR-SOURCE-CODE-PATH WORK=TEMP-PATH
.
After build successful, move the all of files in the jniLibs
to YOUR-PROJECT-PATH/app/obj
.
At the last, do the steps list in Fabric docs.
希望我们的经验可以节省您的时间:-)
我们的应用是一个Android应用,它有一个golang写的JNI。我们使用 Fabric Crashlytics 来跟踪汽车。
但是,在 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)
我们已经解决了这个问题。
背景:
We build a Android app, it has a JNI writed by go, which is build by gomobile. We use the Fabric Crashlytics to monitor the crash information. But in the Crashlytics, we could not see the full stack trace information which occurred in the JNI.
解决方案是:
At the first, please check your NDK version, it must be
r17c
or more.Add a param
--work
in the gomobile command, likegomobile bind --work YOUR-SOURCE-CODE-PATH WORK=TEMP-PATH
.After build successful, move the all of files in the
jniLibs
toYOUR-PROJECT-PATH/app/obj
.At the last, do the steps list in Fabric docs.
希望我们的经验可以节省您的时间:-)