React Native Android集成AWS Amplify推送通知出现类重复报错
问题解决方法
根本原因
你遇到的重复类冲突是旧版AWS Amplify Push Notification模块依赖的过时Firebase组件,和项目中其他依赖引入的高版本Play Services/GMS组件存在同全限定名类导致的。
修复步骤
- 在引入aws-amplify_pushnotification模块时排除冲突依赖
打开android/app/build.gradle文件,修改dependencies块中该模块的引入规则,排除过时的冲突组件:
dependencies { // 其他原有依赖保持不变 implementation (project(':aws-amplify_pushnotification')) { // 排除冲突的firebase-jobdispatcher exclude group: 'com.firebase', module: 'firebase-jobdispatcher' // 排除冲突的旧版firebase-analytics-impl exclude group: 'com.google.firebase', module: 'firebase-analytics-impl' } }
- 全局强制统一GMS/Firebase组件版本
打开android/build.gradle文件,在allprojects块下添加版本统一规则,对齐你项目中已有的高版本组件:
allprojects { repositories { // 原有仓库配置保持不变 } configurations.all { resolutionStrategy { // 版本和你报错日志中出现的高版本保持一致即可 force "com.google.android.gms:play-services-gcm:16.1.0" force "com.google.android.gms:play-services-measurement:19.0.0" force "com.google.android.gms:play-services-measurement-impl:19.0.0" } } }
- 清理缓存重新构建
依次执行以下命令清理残留缓存,避免旧构建产物影响:
- 进入android目录执行清理:
cd android && ./gradlew clean - 回到项目根目录重启Metro并重置缓存:
npx react-native start --reset-cache - 新开终端执行构建命令:
npx react-native run-android
可选终极方案
如果以上操作后仍有冲突,直接升级AWS Amplify Push Notification到最新稳定版,新版已完全移除过时的firebase-jobdispatcher依赖,改用Jetpack WorkManager实现任务调度,不会再出现这类依赖冲突问题。
内容的提问来源于stack exchange,提问作者the_smart_home_maker
相关产品推荐
相关产品推荐

