Как получить Stack-след Голанга в Crashlytics - PullRequest
0 голосов
/ 19 ноября 2018

Наше приложение представляет собой приложение для Android с JNI, написанным golang.И мы используем Fabric Crashlytics для отслеживания ошибок.

Но мы не можем получить информацию о трассировке стека в Crashlytics после сбоя в JNI.В Java мы можем получить его.

В приложении Object-C для iOS мы можем загрузить файл 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)

1 Ответ

0 голосов
/ 23 ноября 2018

Мы решили эту проблему.

Фон:

Мы создаем приложение для Android, оно имеет JNI, написанное go, которое создается gomobile.Мы используем Fabric Crashlytics для мониторинга информации о сбоях.Но в Crashlytics мы не смогли увидеть полную информацию трассировки стека, которая произошла в JNI.

Решение:

Сначала проверьте свой NDK.версия должна быть r17c или более.

Добавить параметр --work в команду gomobile, например gomobile bind --work YOUR-SOURCE-CODE-PATH WORK=TEMP-PATH.

После успешной сборки переместите все файлы вjniLibs до YOUR-PROJECT-PATH/app/obj.

Наконец, выполните список шагов в документе Fabric.

Надеемся, что наш опыт поможет вам сэкономить время: -)

...