Webrtc часть падает только на Release Build, отлично работает на Debug build - PullRequest
1 голос
/ 09 мая 2019

[решено] Я занимаюсь разработкой приложения для видеочата 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 репо может помочь.

1 Ответ

0 голосов
/ 12 мая 2019

Это происходило из-за проблемы с прогурдом.просто положив

    release {
        consumerProguardFiles 'proguard-project.txt'
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...