react-native-webrtc 106.0.7安卓构建报错:setEnableVolumeLogger未找到等问题求解
解决react-native-webrtc 106.0.7 Android构建错误
问题本质
这两个错误源于react-native-webrtc内部代码与依赖的WebRTC原生库API不兼容:setEnableVolumeLogger方法在新版WebRTC中已被移除,STOPPED枚举的调用方式不符合Java switch case的语法要求。
具体修复步骤
1. 移除废弃的setEnableVolumeLogger调用
找到项目中react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java文件,定位第129行代码:
adm = JavaAudioDeviceModule.builder(reactContext).setEnableVolumeLogger(false).createAudioDeviceModule();
直接删除setEnableVolumeLogger(false)部分,修改为:
adm = JavaAudioDeviceModule.builder(reactContext).createAudioDeviceModule();
该配置的功能已合并至WebRTC默认逻辑中,无需额外调用。
2. 修正枚举STOPPED的switch case语法
找到react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java第59行,检查STOPPED所属的枚举类型:
- 如果枚举是
PeerConnection.PeerConnectionState.STOPPED,将case STOPPED:修改为case PeerConnectionState.STOPPED: - 或者在文件顶部添加静态导入:
确保switch case中使用枚举常量的非限定名称。import static org.webrtc.PeerConnection.PeerConnectionState.STOPPED;
3. 锁定WebRTC依赖版本(可选)
若修改源码后仍有兼容问题,在项目android/build.gradle中强制指定与react-native-webrtc 106.0.7匹配的WebRTC版本:
allprojects { configurations.all { resolutionStrategy { force 'org.webrtc:google-webrtc:106.0.0' } } }
4. 清理缓存并重新构建
执行以下命令完成修复后的构建:
cd android ./gradlew clean cd .. npx react-native run-android
内容的提问来源于stack exchange,提问作者H.Gndgn
相关产品推荐
相关产品推荐

