Android WebRTC SIGSEGV in nativeAddLocalStream



我试图构建一个Android WebRTC应用程序。目前我收到此错误:

04-10 15:40:13.082 10122-10122/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 10122 (...), pid 10122 (...)

我不知道为什么。奇怪的是,我真的无法说出它何时以及为什么启动,因为该应用程序以前运行完美。

我试图找到错误,并在一些调试的帮助下发现错误源于

    MediaStream stream = peerConnectionFactory.createLocalMediaStream("102");
    stream.addTrack(localAudioTrack);
    stream.addTrack(localVideoTrack);
    localPeer.addStream(stream);

其中 localPeer 是我的本地 PeerConnection。

有人知道如何解决这个问题吗?

整个堆栈跟踪是:

04-10 15:40:13.139 10208-10208/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    Build fingerprint: 'google/bullhead/bullhead:8.1.0/OPM3.171019.016/4565142:user/release-keys'
    Revision: 'rev_1.0'
    ABI: 'arm64'
    pid: 10122, tid: 10122, name: emoteassistance  >>> dropslab.bruno.remoteassistance <<<
    signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
    Cause: null pointer dereference
        x0   0000000000000000  x1   0000007ff93b1010  x2   0000000000000000  x3   00000078166e217a
        x4   0000007ff93b0ff0  x5   0000007800bb6465  x6   0000000000000002  x7   0000007ff93b0fb0
        x8   569406812e3f47b7  x9   569406812e3f47b7  x10  0000000000430000  x11  00000078167a07a8
        x12  0000000000000008  x13  0000007ff93b059c  x14  00000078166bab20  x15  0000000000000000
        x16  0000000000000000  x17  0000007ff93b059c  x18  0000000013077e48  x19  00000077ff236df0
        x20  0000000000000000  x21  00000078168bea00  x22  0000007ff93b153c  x23  0000007800bf892b
        x24  000000000000000c  x25  000000789b444a40  x26  00000078168beaa0  x27  0000000000000003
        x28  0000007ff93b1270  x29  0000007ff93b1240  x30  00000077fd4c443c
        sp   0000007ff93b1230  pc   00000077fd4c443c  pstate 0000000060000000
04-10 15:40:13.142 3253-10222/? E/mm-camera-img: module_imglib_start_session:1778 ###Img_Loglevel 1
04-10 15:40:13.145 3253-10219/? E/mm-camera: q3a_port_init:1753  q3a_port_init: 3A VERSION --> 4.1.0.r9
04-10 15:40:13.146 3253-10217/? E/mm-camera-isp2: isp_module_start_session:360 num_session_opened 1
04-10 15:40:13.160 3253-10232/? E/libaprpmem:  Ion allocation success virtaddr : ret=3951620096 fd=38 heapid=33554432
04-10 15:40:13.163 3253-10232/? E/libaprpmem:  Ion allocation success virtaddr : ret=3947651072 fd=41 heapid=33554432
04-10 15:40:13.166 3253-10232/? E/libaprpmem:  Ion allocation success virtaddr : ret=3939713024 fd=42 heapid=33554432
04-10 15:40:13.168 10208-10208/? A/DEBUG: backtrace:
        #00 pc 00000000005bf43c  /data/app/dropslab.bruno.remoteassistance-AB_bvseEj1CPHtgYD8nSiw==/lib/arm64/libjingle_peerconnection_so.so (offset 0x21b000) (Java_org_webrtc_PeerConnection_nativeAddLocalStream+28)
        #01 pc 0000000000553bf0  /system/lib64/libart.so (art_quick_generic_jni_trampoline+144)
        #02 pc 000000000054ab88  /system/lib64/libart.so (art_quick_invoke_stub+584)
        #03 pc 00000000000dc594  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204)
        #04 pc 000000000029b49c  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
        #05 pc 0000000000295a90  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+700)
        #06 pc 0000000000533d68  /system/lib64/libart.so (MterpInvokeDirect+356)
        #07 pc 000000000053ca14  /system/lib64/libart.so (ExecuteMterpImpl+14484)
        #08 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #09 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #10 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #11 pc 0000000000532ad8  /system/lib64/libart.so (MterpInvokeVirtual+652)
        #12 pc 000000000053c914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        #13 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #14 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #15 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #16 pc 0000000000533d68  /system/lib64/libart.so (MterpInvokeDirect+356)
        #17 pc 000000000053ca14  /system/lib64/libart.so (ExecuteMterpImpl+14484)
        #18 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #19 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #20 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #21 pc 0000000000533d68  /system/lib64/libart.so (MterpInvokeDirect+356)
        #22 pc 000000000053ca14  /system/lib64/libart.so (ExecuteMterpImpl+14484)
        #23 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #24 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #25 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #26 pc 0000000000532ad8  /system/lib64/libart.so (MterpInvokeVirtual+652)
        #27 pc 000000000053c914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        #28 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #29 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #30 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #31 pc 0000000000533ab8  /system/lib64/libart.so (MterpInvokeInterface+1576)
        #32 pc 000000000053cb14  /system/lib64/libart.so (ExecuteMterpImpl+14740)
        #33 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #34 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #35 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #36 pc 0000000000532ad8  /system/lib64/libart.so (MterpInvokeVirtual+652)
        #37 pc 000000000053c914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        #38 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #39 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
04-10 15:40:13.169 10208-10208/? A/DEBUG:     #40 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #41 pc 0000000000532ad8  /system/lib64/libart.so (MterpInvokeVirtual+652)
        #42 pc 000000000053c914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        #43 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #44 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #45 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #46 pc 0000000000533d68  /system/lib64/libart.so (MterpInvokeDirect+356)
        #47 pc 000000000053ca14  /system/lib64/libart.so (ExecuteMterpImpl+14484)
        #48 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #49 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #50 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #51 pc 0000000000532ad8  /system/lib64/libart.so (MterpInvokeVirtual+652)
        #52 pc 000000000053c914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        #53 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #54 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #55 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #56 pc 0000000000532ad8  /system/lib64/libart.so (MterpInvokeVirtual+652)
        #57 pc 000000000053c914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        #58 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)
        #59 pc 000000000027b7cc  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+216)
        #60 pc 0000000000295a70  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+668)
        #61 pc 0000000000532ad8  /system/lib64/libart.so (MterpInvokeVirtual+652)
        #62 pc 000000000053c914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        #63 pc 0000000000275c00  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+444)

您应该首先检查本机对等连接是否正确初始化,因为非空 Java 对象 PeerConnetion 不返回任何 mather 的奇怪情况,无论本机对等连接是否正确初始化。例如,如果您尝试将最新的 webrtc 库与旧 webrtc 提供的 stun/turn 服务器一起使用,则会出现此问题。在这种情况下,当您尝试将任何内容(DataChannel,VideoTrack,AudioTrack等(附加到peerConnection对象时,您将获得此本机空指针。

在使用之前检查您的 nativePeerConnection:

if(0 == localPeer.getNativePeerConnection()) {
    Log.e("oops", "Illegal PeerConnection object. Something wrong in construction of native peerConnection.");
}

相关内容

  • 没有找到相关文章

最新更新