React Native Camera安卓端Gradle构建报错求助
解决React Native Camera Android构建冲突:com.google.android.gms.license重复包问题
我之前也碰到过一模一样的问题,明明前一周还运行正常,突然就炸出这个Gradle构建错误,折腾了好一阵子才搞定,给你几个靠谱的解决方案:
核心原因
这个报错本质是Google Play Services(GMS)依赖版本冲突——你的项目里可能有多个依赖(比如react-native-camera、Firebase、Maps等)引入了不同版本的GMS组件,导致com.google.android.gms.license包被重复加载。
解决方案
1. 统一所有GMS依赖版本(最推荐)
通过项目根目录的build.gradle定义全局版本变量,强制所有依赖使用同一版本的GMS:
// 项目根目录/build.gradle buildscript { ext { buildToolsVersion = "30.0.3" minSdkVersion = 21 compileSdkVersion = 30 targetSdkVersion = 30 // 统一GMS版本号,选择和你项目其他依赖兼容的版本 googlePlayServicesVersion = "17.0.0" } repositories { google() jcenter() } // ... 其他buildscript内容 }
然后在android/app/build.gradle里添加BOM(Bill of Materials)来自动管理GMS版本:
// android/app/build.gradle dependencies { // 强制所有GMS依赖使用统一版本 implementation platform('com.google.android.gms:play-services-bom:17.0.0') // ... 你的其他依赖,比如react-native-camera、Firebase等 }
2. 排除react-native-camera中的冲突依赖
如果统一版本还是不行,可以直接排除react-native-camera里的冲突GMS模块:
// android/app/build.gradle dependencies { implementation(project(':react-native-camera')) { // 排除冲突的GMS组件,比如vision(react-native-camera常用的GMS模块) exclude group: 'com.google.android.gms', module: 'play-services-vision' // 或者直接排除license模块(如果能精准定位的话) exclude group: 'com.google.android.gms', module: 'license' } }
3. 清理Gradle缓存(必做步骤)
有时候旧缓存会导致依赖解析异常,执行以下命令彻底清理:
# 清理项目缓存 ./gradlew clean # 停止Gradle守护进程 ./gradlew --stop # 删除全局Gradle缓存(可选,但建议做) rm -rf ~/.gradle/caches/
4. 检查并锁定所有依赖版本
突然出现问题大概率是某个依赖自动更新了版本(比如你用了+或者未锁定的版本号)。可以通过以下命令查看依赖树,找到冲突的GMS版本:
./gradlew app:dependencies
然后把所有动态版本号改成固定版本,避免后续自动更新导致冲突。
内容的提问来源于stack exchange,提问作者Keith Burke
相关产品推荐
相关产品推荐

