catch UnsatisfiedLinkError when trying to init libwebrtc. fixes #3707
This commit is contained in:
parent
1d9b9e3bf0
commit
f4247379bd
|
@ -705,10 +705,8 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateCallDuration() {
|
private void updateCallDuration() {
|
||||||
Log.d(Config.LOGTAG,"updateCallDuration()");
|
|
||||||
final JingleRtpConnection connection = this.rtpConnectionReference != null ? this.rtpConnectionReference.get() : null;
|
final JingleRtpConnection connection = this.rtpConnectionReference != null ? this.rtpConnectionReference.get() : null;
|
||||||
if (connection == null || connection.getMedia().contains(Media.VIDEO)) {
|
if (connection == null || connection.getMedia().contains(Media.VIDEO)) {
|
||||||
Log.d(Config.LOGTAG,"rtpConnection was null or contained video");
|
|
||||||
this.binding.duration.setVisibility(View.GONE);
|
this.binding.duration.setVisibility(View.GONE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,6 +262,7 @@ public class JingleConnectionManager extends AbstractConnectionManager {
|
||||||
rtpConnection.deliveryMessage(from, message, serverMsgId, timestamp);
|
rtpConnection.deliveryMessage(from, message, serverMsgId, timestamp);
|
||||||
} else {
|
} else {
|
||||||
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": no rtp session proposal found for " + from + " to deliver proceed");
|
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": no rtp session proposal found for " + from + " to deliver proceed");
|
||||||
|
//TODO return error message "item-not-found"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ("reject".equals(message.getName())) {
|
} else if ("reject".equals(message.getName())) {
|
||||||
|
|
|
@ -486,6 +486,7 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web
|
||||||
}
|
}
|
||||||
|
|
||||||
void deliverFailedProceed() {
|
void deliverFailedProceed() {
|
||||||
|
//TODO do we want a special State.ITEM_NOT_FOUND to track retracted calls during network outages
|
||||||
Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": receive message error for proceed message");
|
Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": receive message error for proceed message");
|
||||||
if (transition(State.TERMINATED_CONNECTIVITY_ERROR)) {
|
if (transition(State.TERMINATED_CONNECTIVITY_ERROR)) {
|
||||||
webRTCWrapper.close();
|
webRTCWrapper.close();
|
||||||
|
|
|
@ -8,6 +8,7 @@ import android.util.Log;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.util.concurrent.Futures;
|
import com.google.common.util.concurrent.Futures;
|
||||||
|
@ -164,10 +165,14 @@ public class WebRTCWrapper {
|
||||||
this.eventCallback = eventCallback;
|
this.eventCallback = eventCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setup(final Context context, final AppRTCAudioManager.SpeakerPhonePreference speakerPhonePreference) {
|
public void setup(final Context context, final AppRTCAudioManager.SpeakerPhonePreference speakerPhonePreference) throws InitializationException {
|
||||||
|
try {
|
||||||
PeerConnectionFactory.initialize(
|
PeerConnectionFactory.initialize(
|
||||||
PeerConnectionFactory.InitializationOptions.builder(context).createInitializationOptions()
|
PeerConnectionFactory.InitializationOptions.builder(context).createInitializationOptions()
|
||||||
);
|
);
|
||||||
|
} catch (final UnsatisfiedLinkError e) {
|
||||||
|
throw new InitializationException(e);
|
||||||
|
}
|
||||||
this.eglBase = EglBase.create();
|
this.eglBase = EglBase.create();
|
||||||
this.context = context;
|
this.context = context;
|
||||||
mainHandler.post(() -> {
|
mainHandler.post(() -> {
|
||||||
|
@ -555,7 +560,11 @@ public class WebRTCWrapper {
|
||||||
|
|
||||||
static class InitializationException extends Exception {
|
static class InitializationException extends Exception {
|
||||||
|
|
||||||
private InitializationException(String message) {
|
private InitializationException(final Throwable throwable) {
|
||||||
|
super(throwable);
|
||||||
|
}
|
||||||
|
|
||||||
|
private InitializationException(final String message) {
|
||||||
super(message);
|
super(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue