我们有一个与CrashlyitcsNdk一起使用的Android应用程序,用于崩溃报告。
在许多崩溃报告中,回溯都有许多丢失的符号,并且显示不准确。这对于ARM和ARM64设备尤其不利。
相比之下,X86设备具有正确的回溯信息。
例如,比较两个不同设备上的同一崩溃程序的以下两个报告:
X86 on Android 8.0
Crashed: Thread
0 libavcodec.so 0xc9420651 ff_cbs_read_unsigned (get_bits.h:274)
1 libavcodec.so 0xc944045a cbs_misc_read_a53_user_data (cbs_misc_syntax_template.c:84)
2 libavcodec.so 0xc979bcb3 mpeg2_metadata_filter (mpeg2_metadata_bsf.c:226)
3 libavcodec.so 0xc941e926 av_bsf_receive_packet (bsf.c:203)
4 libavcodec.so 0xc9472bbf bsfs_poll (decode.c:299)
5 libavcodec.so 0xc96c697d mediacodec_receive_frame (mediacodecdec.c:424)
6 libavcodec.so 0xc9473340 decode_receive_frame_internal (decode.c:644)
7 libavcodec.so 0xc9472f68 avcodec_send_packet (decode.c:717)
vs
ARM64 on Android 8.0
0 libavcodec.so 0x2f2bcbdd7c ff_cbs_read_unsigned (get_bits.h:274)
1 (Missing) 0x47413930 (Missing)
2 (Missing) 0x47413930 (Missing)
3 libavcodec.so 0x2f2bcd8650 cbs_misc_read_a53_user_data (cbs_misc_syntax_template.c:84)
4 libavcodec.so 0x2f2bf3f338 mpeg2_metadata_filter (mpeg2_metadata_bsf.c:226)
5 libavcodec.so 0x2f2bed86e4 ff_mediacodec_dec_receive (mediacodecdec_common.c:861)
6 libavcodec.so 0x2f2bd00fdc ff_decode_get_packet (decode.c:299)
7 libavcodec.so 0x2f2c028906 (Missing)
8 libavcodec.so 0x2f2bed73cc mediacodec_receive_frame (mediacodecdec.c:424)
9 libc.so 0x2f0df1b698 (Missing)
10 libavcodec.so 0x2f2bd01690 decode_receive_frame_internal (decode.c:644)
11 libavutil.so 0x2f2baefce8 av_mallocz (mem.c:87)
12 libavcodec.so 0x2f2bd01300 avcodec_send_packet (decode.c:717)
ARM / ARM64上的展开器似乎无法正常工作。
此外,根据https://docs.fabric.io/android/crashlytics/ndk.html上的文档,“正在加载的展开库将在应用程序启动时写入logcat。”但是,我看不到有关正在使用的展开器的应用程序启动登录。