1

我在用户报告的 Google Play 应用程序的生产版本中收到此错误:

信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR) libpjsua2.so

回溯:

本机:pc 00000000001bd4e8 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 00000000001bd6b7 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so (pj_timer_heap_schedule_w_grp_lock +26)本机:pc 000000000016497f /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 0000000000164e53 /data/app/domain.package.appname-2/lib/arm/libpjsua2。所以本机:pc 0000000000165db7 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 000000000015dc1d /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机: pc 000000000015f57b /data/app/domain.package.appname-2/lib/arm/libpjsua2.so (pjsip_resolve+1058) 本机: pc 000000000015e9cd /data/app/domain.package.appname-2/lib/arm/libpjsua2 .so (pjsip_endpt_send_request_stateless+92) 本机:pc 0000000000165087 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 0000000000165173 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 0000000000166943 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so (pjsip_tsx_send_msg+86) 本机:pc 0000000000166b8b /data/app/domain.package.appname-2/lib/arm/libpjsua2.so ( pjsip_endpt_send_request+86) 本机:pc 00000000001503db /data/app/domain.package.appname-2/lib/arm/libpjsua2.so (pjsip_regc_send+206) 本机:pc 0000000000138daf /data/app/domain.package.appname-2/ lib/arm/libpjsua2.so (pjsua_acc_set_registration+1118) 本机:pc 000000000013b0bb /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 00000000001bd7d1 /data/app/domain.package.appname -2/lib/arm/libpjsua2.所以(pj_timer_heap_poll+124)本机:pc 000000000015d1f1 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so(pjsip_endpt_handle_events2+34)本机:pc 0000000000140d2d /data/app/domain.package.appname- 2/lib/arm/libpjsua2.so (pjsua_handle_events+32) 本机:pc 0000000000140d51 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 00000000001b7bf9 /data/app/domain.package .appname-2/lib/arm/libpjsua2.so 本机:pc 0000000000047423 /system/lib/libc.so (_ZL15__pthread_startPv+22) 本机:pc 0000000000019efd /system/lib/libc.so (__start_thread+6)所以(pjsua_handle_events+32)本机:pc 0000000000140d51 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 00000000001b7bf9 /data/app/domain.package.appname-2/lib/arm /libpjsua2.so 本机:pc 0000000000047423 /system/lib/libc.so (_ZL15__pthread_startPv+22) 本机:pc 0000000000019efd /system/lib/libc.so (__start_thread+6)所以(pjsua_handle_events+32)本机:pc 0000000000140d51 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 本机:pc 00000000001b7bf9 /data/app/domain.package.appname-2/lib/arm /libpjsua2.so 本机:pc 0000000000047423 /system/lib/libc.so (_ZL15__pthread_startPv+22) 本机:pc 0000000000019efd /system/lib/libc.so (__start_thread+6)

如何理解这个错误?不幸的是,我无法重现此问题。我想这与帐户的背景注册有关,但我不确定。

4

1 回答 1

3

您的Android 应用程序libpjsua2.so库之间发生异常。

所以注册账号的时候会报错。并且pjsua_acc_set_registration时也声明了异常。所以检查地点在哪里,您将使用pjsua_acc_set_registration(acc_id,PJ_TRUE)注册帐户。

这可能在您尝试注册帐户时发生,该帐户 ( acc_id ) 在您的 PJSIP 库中不存在。

试试这个,我不能 100% 确定。

什么是 SEGV_MAPERR?

上面的链接清楚地表明,

访问的页面甚至根本没有映射到应用程序的地址空间。这通常是由于取消引用空指针或被小整数值损坏的指针造成的。这报告为 SEGV_MAPERR。

因此,它表明它将空指针传递给您的库文件 libpjsua2.so 。

检查您调用的位置 pjsua_acc_set_registration 方法,它有机会在没有您的 PJSIP 帐户的情况下调用此方法。有时,如果垃圾收集器清除所有 PJSIP 用户详细信息的内存并尝试使用 pjsua_acc_set_registration 注册帐户。

于 2017-09-19T16:28:02.370 回答