[решено] Я занимаюсь разработкой приложения для видеочата Webrtc. Он отлично работает при сборке Debug и не падает, а падает при выпуске сборки. Моя версия Webrtc
реализация 'org.webrtc: google-webrtc: 1.0.27771'
Всякий раз, когда я вызываю эту функцию, я получаю сообщение об ошибке
# Фатальная ошибка в:
../../../../usr/local/google/home/sakal/code/webrtc-aar-release/src/sdk/android/src/jni/jni_generator_helper.cc,
линия 59
И вот где он падает,
public void start() {
if (Nammu.checkPermission(CAMERA)) {
//NEW
PeerConnectionFactory.InitializationOptions initializationOptions =
PeerConnectionFactory.InitializationOptions.builder(this)
//.setEnableVideoHwAcceleration(true)
.setEnableInternalTracer(true)
//.setFieldTrials("WebRTC-FlexFEC-03/Enabled/")
.createInitializationOptions();
PeerConnectionFactory.initialize(initializationOptions);
PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
DefaultVideoEncoderFactory defaultVideoEncoderFactory = new DefaultVideoEncoderFactory(
rootEglBase.getEglBaseContext(), /* enableIntelVp8Encoder */true, /* enableH264HighProfile */false);
DefaultVideoDecoderFactory defaultVideoDecoderFactory = new DefaultVideoDecoderFactory(rootEglBase.getEglBaseContext());
//NEW
peerConnectionFactory = PeerConnectionFactory.builder()
.setOptions(options)
.setVideoEncoderFactory(defaultVideoEncoderFactory)
.setVideoDecoderFactory(defaultVideoDecoderFactory)
.createPeerConnectionFactory();
VideoCapturer videoCapturerAndroid;
videoCapturerAndroid = createCameraCapturer(new Camera1Enumerator(false));
audioConstraints = new MediaConstraints();
videoConstraints = new MediaConstraints();
sdpConstraints = new MediaConstraints();
if (videoCapturerAndroid != null) {
//NEW
SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create("CaptureThread", rootEglBase.getEglBaseContext());
videoSource = peerConnectionFactory.createVideoSource(videoCapturerAndroid.isScreencast());
videoCapturerAndroid.initialize(surfaceTextureHelper, getApplicationContext(), videoSource.getCapturerObserver());
}
localVideoTrack = peerConnectionFactory.createVideoTrack("100", videoSource);
//create an AudioSource instance
audioSource = peerConnectionFactory.createAudioSource(audioConstraints);
localAudioTrack = peerConnectionFactory.createAudioTrack("101", audioSource);
localAudioTrack.setEnabled(true);
localAudioTrack.setVolume(1);
if (videoCapturerAndroid != null) {
videoCapturerAndroid.startCapture(1024, 720, 30);
}
localVideoTrack.addSink(localVideoView);
localVideoView.setMirror(true);
remoteVideoView.setMirror(true);
gotUserMedia = true;
if (SignallingClient.getInstance().isInitiator) {
onTryToStart();
}
}else {
Nammu.askForPermission(this, CAMERA, permissionCameraCallback);
}
}
Решение
Я решил эту проблему. Это происходило из-за проблемы прогурда.
просто положив
release {
consumerProguardFiles 'proguard-project.txt'
}
решил мою проблему. Также это git репо может помочь.