如何使用crashlytics

时间:2018-01-25 21:09:49

标签: android android-ndk crashlytics

我从Google Play控制台收到以下NDK崩溃报告,但未在Crashlytics中收到。

#00  pc 0000000000049c44  /system/lib/libc.so (tgkill+12)
#01  pc 00000000000473e3  /system/lib/libc.so (pthread_kill+34)
#02  pc 000000000001d535  /system/lib/libc.so (raise+10)
#03  pc 0000000000019081  /system/lib/libc.so (__libc_android_abort+34)
#04  pc 00000000000170e4  /system/lib/libc.so (abort+4)
#05  pc 000000000000c3a1  /system/lib/libcutils.so (__android_log_assert+112)
#06  pc 000000000002352d  /system/lib/libhwui.so
#07  pc 0000000000024db3  /system/lib/libhwui.so
#08  pc 00000000000281a9  /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+80)
#09  pc 000000000000e361  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+140)
#10  pc 0000000000064d19  /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+80)
#11  pc 0000000000046eb3  /system/lib/libc.so (_ZL15__pthread_startPv+22)
#12  pc 0000000000019acd  /system/lib/libc.so (__start_thread+6)

我想让Crashltytics也报告这些崩溃事件。我们不使用任何NDK库,崩溃应来自外部第三方库。我正在阅读https://docs.fabric.io/android/crashlytics/ndk.html,但仍然不知道该怎么做。

问题1

鉴于我已经在我的Android应用程序中使用Crashlytics,我必须做出/添加的确切配置更改,以便崩溃报告NDK从外部第三方库崩溃?

问题2

https://docs.fabric.io/android/crashlytics/ndk.html中,它提到了Uploading symbols for external dependencies。什么是symbols?我应该关心它吗?

提前致谢。

1 个答案:

答案 0 :(得分:7)

您可以将craslytics ndk包含在build.gradle中,并在同一个信息中心中报告本机崩溃。最近,crashlytics与Firebase集成。

crashlytics {
  enableNdk true
}
implementation 'com.crashlytics.sdk.android:crashlytics:2.8.0'
implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.0.1'

在Java中你必须添加NDK:

Fabric.with(this, new Crashlytics(), new CrashlyticsNdk());

nativeInitCrashlytics();

上传符号,这些报告可能会更有意义,但这与您无关,因为您没有第三方本机库的来源,并且它实际上没有帮助知道它所在的函数的名称崩溃。

这就是说,请注意,这个特定的崩溃很可能仍然不会出现在Crashlytics仪表板中。堆栈表明某些硬件加速渲染过程失败。您的代码可能没有直接关系。