我从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,但仍然不知道该怎么做。
鉴于我已经在我的Android应用程序中使用Crashlytics,我必须做出/添加的确切配置更改,以便崩溃报告NDK从外部第三方库崩溃?
在https://docs.fabric.io/android/crashlytics/ndk.html中,它提到了Uploading symbols for external dependencies
。什么是symbols
?我应该关心它吗?
提前致谢。
答案 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仪表板中。堆栈表明某些硬件加速渲染过程失败。您的代码可能没有直接关系。