2017-09-19 16 views
1

"libpjsua2.so"에서는 사용자에 의해보고 된 플레이 :PJSIP 라이브러리 충돌 "신호 11 (SIGSEGV), 코드 1 (SEGV_MAPERR)"나는 구글에서 응용 프로그램 내 생산 버전에서이 오류가 발생했습니다

신호 (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/libpjsu PC 0000000000164e53 /data/app/domain.package.appname- : 네이티브 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 000000000016497f PC : 기본 a2.so (+ 26 pj_timer_heap_schedule_w_grp_lock) 2/lib/arm/libpjsua2.so 기본 : 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의 00000000001503dB의 /data/app/domain.package : PC의 0000000000166b8b (pjsip_endpt_send_request + 86) 기본 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so .appname-2/lib 디렉토리/팔/libpjsua2.so (pjsip_regc_send + 206) 기본 : (pjsua_acc_set_registration + 1118) 을 /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 0000000000138daf PC 기본 : pc 000000000013b0bb /data/app/domain.package.appname-2/lib/arm/libpjsua2.so 기본 : pc 00000000001bd7d1/data/app/domain.package.appname-2/lib 디렉토리/팔/libpjsua2.so (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)

이 오류를 이해하는 방법? 불행히도이 문제는 재현 할 수 없습니다. 나는 계정의 배경 등록과 관련이 있다고 생각하지만 확실하지 않습니다.

답변

3

예외는 안드로이드 응용 프로그램 및 라이브러리 libpjsua2.so 사이에 발생합니다.

계정을 등록하는 중에 오류가 발생합니다. 또한 예외가 명시된 동안 pjsua_acc_set_registration.장소가 어디인지 확인하십시오. pjsua_acc_set_registration (acc_id, PJ_TRUE)을 사용하여 계정을 등록하려고합니다.

계정을 등록하는 동안이 계정 (을 acc_id) 당신의 PJSIP 라이브러리에 존재하지 않는 발생할 수 있습니다.

그냥 시도해 보시면 100 % 확신 할 수 없습니다.

What is SEGV_MAPERR?

위의 링크를 명확하게

페이지가 그도에서 모든 응용 프로그램의 주소 공간에 매핑되지 않은 액세스 한 것을 보여줍니다. 이것은 종종 널 포인터 또는 작은 정수 값으로 손상된 포인터를 역 참조하는 결과입니다. 이것은 SEGV_MAPERR로보고됩니다.

그래서 libpjsua2.so 라이브러리 파일에 null 포인터를 전달하고 있음을 보여줍니다.

호출 한 장소 pjsua_acc_set_registration을 확인하면 PJSIP 계정없이이 메소드를 호출 할 수있는 기회가 있습니다. 때때로 가비지 수집기가 모든 PJSIP 사용자 정보를 정리하고 pjsua_acc_set_registration을 사용하여 계정을 등록하려고 시도하는 경우가 있습니다.

+0

등록을 위해 앱 로직을 일부 변경했습니다. 등록은 백그라운드 서비스에서 수행되므로 도움이되는지 알 수 있습니다. 이번에 충돌 보고서가 있는지 확인하기 위해 앱을 게시했습니다. 고맙습니다! –