android - PJSIP 库崩溃 : "signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)" in "libpjsua2.so"

标签 android pjsip pjsua2

用户报告说,我在 Google Play 上的应用程序的生产版本中遇到了这个错误:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) libpjsua2.so

backtrace:

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

如何理解这个错误?不幸的是我无法重现这个问题。估计跟后台注册账号有关,但我不确定。

最佳答案

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

所以错误是在注册账号的时候出现的。并且在 pjsua_acc_set_registration 时也声明了异常。所以检查这些地方在哪里,你要使用pjsua_acc_set_registration(acc_id,PJ_TRUE)注册账户。

This can occur while you are trying to register the account, that account (acc_id) doesn't exist in your PJSIP Library.

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

What is SEGV_MAPERR?

上面的链接清楚地表明,

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

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

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

关于android - PJSIP 库崩溃 : "signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)" in "libpjsua2.so",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46294869/

相关文章:

android - 从未知/外部线程调用 pjlib。您必须使用 pj_thread_register() ""注册外部线程

android - 使用 PJSUA 在 android 中记录 sip 调用

android - 自动重新设置首选项?

android - 如何解决 react-native 中的 android Overflow 问题

android - 使用 GoogleAuthUtil 时如何获取 refreshToken

ios - PJSIP 2.4 视频方向变化传播

Android SIP 堆栈 - 使用什么?

c++ - 如何在 Qt 和 C++ 中使用 "Interface Class"来通信两个线程

android - 如何更改 pjsip android 中的编解码器优先级

java - 线程在同步块(synchronized block)中停止