Я только недавно начал изучать kotlin, и когда я изменил релиз Webrtc на более новый (1.0.22920), возникла следующая проблема:
Type mismatch: inferred type is PeerConnection? but PeerConnection was expected
Вот часть кода, где возникает ошибка:
val rtcConfig = PeerConnection.RTCConfiguration(iceServers)
peerConnection = peerConnectionFactory.createPeerConnection(rtcConfig, getPeerConnectionMediaConstraints(), videoPeerConnectionListener)
Скорее всего, это связано с тем, что в библиотеке Webrtc createPeerConnection стал @Nullable:
@Nullable
public PeerConnection createPeerConnection(RTCConfiguration rtcConfig, MediaConstraints constraints, Observer observer) {
long nativeObserver = PeerConnection.createNativePeerConnectionObserver(observer);
if (nativeObserver == 0L) {
return null;
} else {
long nativePeerConnection = nativeCreatePeerConnection(this.nativeFactory, rtcConfig, constraints, nativeObserver);
return nativePeerConnection == 0L ? null : new PeerConnection(nativePeerConnection);
}
}
Попытка поставить? а также !! в разных местах не работал.
Я думаю, что только мое плохое знание kotlin отделяет меня от решения проблемы, вы можете мне помочь?