我正在制作一个可以通过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?
答案 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
}
这是一个很奇怪的问题,很难从错误中调试,仅通过读取错误日志就无法跟踪。