首页 > 解决方案 > Android React Native 应用程序在 getUserMedia WebRTC 调用时崩溃

问题描述

我已经调试了好几天了,不再有很多选择,因此提出了一个长远的问题——我正在为 React Native 使用 ConnectyCube WebRTC 视频通话。我还尝试使用该react-native-webrtc软件包从我的 Android 设备流式传输视频。

当我调用 getUserMedia 方法时,使用这两个包时,我的应用程序崩溃而没有任何日志或错误。我必须再次构建应用程序才能使用它。

是我之前的一篇文章,描述了我之前遇到的问题 - 但是,如果您从上面的链接下载并构建 ConnectyCubes 应用程序,他们的应用程序可以工作 - 我无法弄清楚为什么我的应用程序没有。

所以我的问题是,我是否应该检查与getUserMediaReact Native 中的调用相关的任何可能阻止它工作的东西?

我正在使用:

RN v0.59.9 
gradle wrapper 5.4.1 
classpath(“com.android.tools.build:gradle:3.4.1”)
buildToolsVersion = “28.0.3”
compileSdkVersion = 28

我已寻求支持,但尚未解决。

奇怪的是,我无法在session函数的某些点记录参数。提前致谢。

const getUserMedia = session => {
  console.log(session); // logs here 
  return new Promise((resolve, reject) => {
    console.log(session); // but not here
    session.getUserMedia({
      audio: true,
      video: { facingMode: 'user' }
    }, function (error, stream) {
      console.log(error, stream) // or here
      error ? reject(error) : resolve(stream);
    });
  });
}

更新

上述函数的问题可能是由于某种原因,在控制台打印出任何内容之前就发生了崩溃。

标签: javascriptwebrtcreact-native-androidconnectycube

解决方案


这是通过删除 gradle 缓存并运行 npm i 来解决的,如下所述:

如何清除gradle缓存?


推荐阅读