I have an Android Studio project that includes multiple native shared libraries.
I followed the steps documented here to integrate Crashlytics NDK support and upload symbols to Fabric: https://fabric.io/downloads/gradle/ndk
The crashes are successfully reported:
D/CrashlyticsCore: Checking for crash reports...
D/CrashlyticsCore: Attempting to send 1 report(s)
D/CrashlyticsCore: Sending report to: ...
D/CrashlyticsCore: Result was: 202
I/CrashlyticsCore: Crashlytics report upload complete:
and I do see them in the Fabric Crashlytics console.
However, I am seeing the following problems in the backtraces:
- There are missing frames. Oftentimes only one frame shows symbols from my native libraries (usually just the frame that caused the crash).
- The frames don't always seem to make sense. For example, between direct function calls there will be 'ghost' frames with no symbols.
- Missing symbols from libc.so
Here's an example:
#0
Crashed: Thread
SIGABRT 0x00000000000008b1
Crashed: Thread
0 libc.so 0xf5465d66 (Missing)
1 libc.so 0xf54a4665 (Missing)
2 libc.so 0xf5465fe1 (Missing)
3 libMyLibrary.so 0xd9e79622 (Missing)
4 libMyLibrary.so 0xd9c23d83 Java_com_xxxxxxxx (MySource.cpp:109)
5 (Missing) 0x705e92cc (Missing)
6 (Missing) 0xdb84aa3a (Missing)
7 (Missing) 0xf4645d9e (Missing)
8 libart.so 0xf37eacb7 (Missing)
9 (Missing) 0x136b8b36 (Missing)
10 (Missing) 0xdb84aa32 (Missing)
<frames omitted for brevity, all with missing symbols>
62 libart.so 0xf3a13ece (Missing)
63 libart.so 0xf3800caf (Missing)
64 (Missing) 0x13001756 (Missing)
Frame 3 is missing symbols. Also, there should have been other frames in my native lib following frame 4 but those are missing details.
I am using crashlytics:2.9.8 and crashlytics-ndk:2.0.5
Possibly related to Bogus NDK stack backtrace after upgrading to Crashlytics NDK 2.+
Any suggestions? Is there an issue with crashlytics-ndk-2.x?