Flutter项目中flutter_webrtc与ivs-broadcast重复类冲突求助
解决Flutter项目中flutter_webrtc与AWS IVS Broadcast依赖冲突问题
问题分析
flutter_webrtc和AWS IVS Broadcast两个依赖都内置了WebRTC相关类,导致构建时出现重复类冲突。你之前尝试的exclude规则未生效,大概率是因为IVS Broadcast将WebRTC类直接打包在aar包内,而非通过依赖引入,常规的排除配置无法识别。
可行解决方案
方案1:强制统一WebRTC版本
在Android模块级build.gradle的android块外添加配置,强制所有依赖使用同一版本的WebRTC(这里选用flutter_webrtc依赖的版本,避免适配问题):
configurations.all { resolutionStrategy.force 'com.github.webrtc-sdk:android:104.5112.06' }
方案2:从flutter_webrtc中排除WebRTC依赖
反过来,让项目使用IVS Broadcast内置的WebRTC版本。修改pubspec.yaml中flutter_webrtc的配置:
flutter_webrtc: ^0.9.33 android: exclude: - group: com.github.webrtc-sdk module: android
之后无需给IVS Broadcast添加exclude规则,直接保留原依赖配置即可。
方案3:使用IVS Broadcast的无WebRTC变体包
检查AWS IVS官方文档,确认是否提供了不包含WebRTC的aar包变体(部分库会拆分基础版与带依赖版)。如果存在,替换为对应版本:
implementation('com.amazonaws:ivs-broadcast:1.9.0:stages-no-webrtc@aar')
注:上述版本为示例,需以官方提供的实际变体包为准。
方案4:忽略重复类(最后尝试)
如果以上方案均无效,可通过packagingOptions强制选择其中一套重复类,在模块级build.gradle的android块中添加:
android { packagingOptions { pickFirst 'org/webrtc/**/*.class' } }
⚠️ 此方法可能引发运行时兼容性问题,仅作为最后备选方案。
验证步骤
- 执行
flutter clean清除项目缓存 - 执行
flutter pub get更新依赖 - 重新构建项目,检查冲突是否解决
内容的提问来源于stack exchange,提问作者張詠翔
相关产品推荐
相关产品推荐

