SIGSEGV SEGV_MAPERR at 0x00000008
0 libpjsua2.so 0x56585a88 pj::Call::getInfo() const
1 libpjsua2.so 0x56546b44 std::allocator<pj::CallMediaInfo>::allocator()
我使用pjsip作为我的一个爱好项目(符合GPL)。在上面你可以看到crashlytics收到的stacktrace。我为pjsip使用Java包装器。如何调查和修复libpjsua2.so崩溃
有很多用户(50%)受此错误影响,但是我无法在本地设备上重现它。
不知道但我怀疑下面的java调用导致错误。哪个通过JNI调用C++
public void notifyCallState(MyCall call) {
if (currentCall == null || call.getId() != currentCall.getId())
return;
CallInfo ci;
try {
ci = call.getInfo();
} catch (Exception e) {
ci = null;
}
Message m = Message.obtain(handler, MSG_TYPE.CALL_STATE, ci);
m.sendToTarget();
if (ci != null && ci.getState() == pjsip_inv_state.PJSIP_INV_STATE_DISCONNECTED) {
currentCall = null;
}
}
代码片段摘自来自psjua下载的例子。 Link to http repo。我的代码是一样的。任何帮助高度赞赏
请将标记从c改为C++或任何其他语言。它不是C. –
您的SIGSEGV跟踪是C++。 C没有std :: allocator。 –
固定。确实pjsua2写在C++ – user12384512