Flutter集成Singular SDK出现Duplicate class错误的原因及解决方法
Flutter集成Singular SDK后Android端Duplicate Class冲突解决
问题根源
你遇到的com.google.android.gms.actions.ReserveIntents重复类错误,是因为Singular SDK依赖的旧版play-services(6.5.87)和Firebase依赖的新版play-services-basement(18.1.0)包含了同一个类,打包时触发冲突。
解决步骤
1. 强制统一Play Services依赖版本
在app/build.gradle的android块中添加版本强制策略,让所有依赖统一使用项目里的新版Play Services:
android { // 保留原有配置内容 configurations.all { resolutionStrategy { force 'com.google.android.gms:play-services-basement:18.1.0' // 若还有其他冲突的Play Services模块,可在此继续强制指定版本 } } }
2. 排除Singular中的旧Play Services依赖
如果版本强制策略无效,直接在Singular的依赖声明里排除旧版play-services模块。找到你引入Singular的位置(无论是pubspec.yaml对应的Android依赖,还是直接在app/build.gradle中),添加排除规则:
dependencies { // 其他依赖保持不变 implementation('com.singular.sdk:singular-flutter:你的Singular版本号') { exclude group: 'com.google.android.gms', module: 'play-services' } }
3. 清理缓存并重新构建
修改配置后,执行以下命令彻底清理缓存再重新构建项目:
flutter clean flutter pub get cd android && ./gradlew clean build
排查其他冲突的方法
如果仍有其他重复类错误,可通过以下命令查看完整依赖树,定位重复模块:
cd android && ./gradlew app:dependencies
之后用同样的版本强制或依赖排除方法处理即可。
内容的提问来源于stack exchange,提问作者Vatsal Gadhiya
相关产品推荐
相关产品推荐

