Android WebRTC дает сбой во время второго запуска WebRTC Activity - PullRequest
0 голосов
/ 17 января 2019

Я делаю приложение, в котором вы можете совершать видеозвонки через WebRTC. При первом вызове Activity для WebRTC все работает гладко, но во второй раз я получаю сбои из-за исключения Null Pointer для моего объекта localPeer:

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

Перед завершением упражнения я попытался очистить ресурсы на Дестрой следующим образом:

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

Я делаю что-то не так, чтобы очистить ресурсы, которые могут вызвать сбой? Или что заставляет peerConnectionFactory.createPeerConnection() возвращать ноль?

1 Ответ

0 голосов
/ 18 января 2019

Хорошо, я нашел проблему для этого.

У меня есть класс Client, который действует как оболочка для моих соединений Socket.IO. Давайте назовем это ClientClass. Внутри ClientClass у меня есть частный статический экземпляр ClientClass, доступ к которому можно получить только через вызов статического метода getInstance () класса.

Во время закрытия соединения я забыл установить его на нуль как таковой:

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

Это довольно странная проблема, которую сложно отладить по ошибкам, которую невозможно отследить, просто прочитав журналы ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...