我第二次运行WebRTC活动时Android WebRTC崩溃

时间:2019-01-17 09:33:19

标签: android webrtc

我正在制作一个可以通过WebRTC进行视频通话的应用。 第一次调用Activity for WebRTC时,一切运行顺利,但是第二次,由于localPeer对象上的Null Pointer异常,我崩溃了:

    java.lang.NullPointerException: Attempt to invoke virtual method 'void org.webrtc.PeerConnection.setRemoteDescription(org.webrtc.SdpObserver, org.webrtc.SessionDescription)' on a null object reference

在完成活动之前,我已经尝试清除Destroy上的资源,例如:

  if (localPeer != null) {
            localPeer.close();
            localPeer.dispose();
        }

我在做任何错误的事情以清除可能导致崩溃的资源吗?还是什么导致peerConnectionFactory.createPeerConnection()返回null?

1 个答案:

答案 0 :(得分:0)

好的,我发现了这个问题。

我有一个Client类,充当Socket.IO连接的包装器。我们称之为ClientClass。在ClientClass中,我有一个私有的静态ClientClass实例,只能通过调用该类的静态getInstance()方法进行访问。

在关闭连接过程中,我忘记将其设置为null

  public void close() {
    socket.emit("bye");
    socket.off();
    socket.disconnect();
    socket.close();
    roomName = null;
    socket = null;
    instance = null; //I forgot this line
}

这是一个很奇怪的问题,很难从错误中调试,仅通过读取错误日志就无法跟踪。