Приложение вылетает при запуске после публикации для внутреннего тестирования (React Native, WebRTC)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Приложение вылетает при запуске после публикации для внутреннего тестирования (React Native, WebRTC)

Сообщение Anonymous »

Я столкнулся с проблемой: мое приложение React Native отлично работает в процессе разработки на физическом устройстве, но вылетает сразу после запуска при сборке и публикации для внутреннего тестирования.
Среда разработки:
Версия React Native: 0.72.4
Библиотека WebRTC: act-native-webrtc@124.0.1
Устройство: [Укажите модель устройства и версия Android]
Описание проблемы:
Находящееся в разработке приложение без проблем запускается на моем физическом устройстве. Однако после создания приложения для внутреннего тестирования и загрузки его на свой мобильный телефон приложение вылетает сразу после открытия.
Журнал сбоев:
оболочка
Копировать код
backtrace:
#00 pc 0x000000000004e178 /apex/com.android.runtime/lib64/bionic/libc.so (abort+168)#01 pc 0x000000000048f0d0 /data/app/~~v1sHNyhUJKmfVIBYxpV5CQ==/com.eaglepay-lXPuf-sJpZLS-NbW3KAyJA==/split_config.arm64_v8a.apk!libjingle_peerconnection_so.so (BuildId: c3f 38365fb86f33a)
Фрагмент кода:
Вот упрощенная версия соответствующего кода в моем приложении:

Код: Выделить всё

import { SafeAreaView, StyleSheet, View } from 'react-native';
import {
RTCPeerConnection,
RTCSessionDescription,
RTCView,
} from 'react-native-webrtc';
import { Buffer } from 'buffer';

const STREAMING_URL = 'https://example.com/webrtc';

const WebRtcNativeStream = ({ url = STREAMING_URL, delay = 2000 }) => {
const [remoteStream, setRemoteStream] = useState(null);
const pc = useRef();
const servers = {
iceServers: [
{ urls: ['stun:stun1.l.google.com:19302', 'stun:stun2.l.google.com:19302'] },
],
iceCandidatePoolSize: 10,
};

const startStreaming = async () => {
try {
pc.current = new RTCPeerConnection(servers);
pc.current.onicecandidate = event => {
if (event.candidate) {
console.log('ICE Candidate:', event.candidate);
} else {
console.log('End of ICE candidates.');
}
};

pc.current.ontrack = event => {
if (event.streams && event.streams[0]) {
setRemoteStream(event.streams[0]);
} else {
console.warn('No streams in ontrack event.');
}
};

const offer = await pc.current.createOffer({
offerToReceiveAudio: true,
offerToReceiveVideo: true,
});
await pc.current.setLocalDescription(offer);

const formData = new FormData();
formData.append('data', Buffer.from(pc.current.localDescription.sdp).toString('base64'));

const response = await fetch(url, { method: 'POST', body: formData });
const data = await response.text();

await pc.current.setRemoteDescription(new RTCSessionDescription({
type: 'answer',
sdp: Buffer.from(data, 'base64').toString('utf-8'),
}));
} catch (error) {
console.error('Error during call setup:', error);
}
};

useEffect(() => {
const timer = setTimeout(() => {
startStreaming();
}, delay);

return () => {
clearTimeout(timer);
if (pc.current) {
pc.current.close();
}
setRemoteStream(null);
};
}, [url, delay]);

return (


{remoteStream && (

)}


);
};

const styles = StyleSheet.create({
container: {
backgroundColor: '#313131',
justifyContent: 'center',
alignItems: 'center',
height: '100%',
},
rtcview: {
justifyContent: 'center',
alignItems: 'center',
height: '100%',
width: '100%',
backgroundColor: 'black',
},
rtc: {
width: '100%',
height: '100%',
},
});

export default WebRtcNativeStream;
Просьба о помощи:
Я буду признателен за любые идеи и предложения по устранению этого сбоя. Кто-нибудь сталкивался с подобной проблемой или может указать, что может пойти не так? Мы будем очень признательны за любую помощь!
К вашему сведению, то же самое работает и в приложении для iOS без каких-либо сбоев.

Подробнее здесь: https://stackoverflow.com/questions/786 ... tive-webrt
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»