新版Android Studio中Gradle不同步,React Native项目构建报错求助
嘿,看你的Gradle配置和错误截图,应该是Google Play Services版本不兼容或者Gradle环境配置有问题导致的构建失败,我给你整理了几个针对性的解决步骤:
1. 升级Gradle构建工具版本
你现在用的com.android.tools.build:gradle:3.0.1版本太老了,和你配置的compileSdkVersion 26以及play-services依赖适配性很差。咱们先把它升级:
打开应用级build.gradle,修改buildscript里的依赖配置:
buildscript { repositories { google() // 把google()放在最前面,优先从官方仓库拉取依赖 mavenCentral() jcenter() } dependencies { // 换成适配compileSdk 26的稳定版本,4.2.2是经过验证的适配版本 classpath 'com.android.tools.build:gradle:4.2.2' } }
然后去项目根目录的gradle/wrapper/gradle-wrapper.properties文件,把gradle的分发地址改成和插件匹配的版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
2. 统一Google Play Services的版本
你在模块级build.gradle里同时引入了多个play-services组件,版本都是11.8.0,但react-native-maps可能依赖了不同版本的play-services-maps,导致版本冲突。咱们在项目级build.gradle里统一锁定版本:
在allprojects块里添加版本强制策略:
allprojects { repositories { google() mavenLocal() jcenter() maven { url "$rootDir/../node_modules/react-native/android" } } // 新增这部分,强制所有依赖使用指定的play-services版本,避免冲突 configurations.all { resolutionStrategy { force 'com.google.android.gms:play-services-base:11.8.0' force 'com.google.android.gms:play-services-maps:11.8.0' force 'com.google.android.gms:play-services-location:11.8.0' } } }
如果你想尝试更兼容的版本,也可以把版本号改成12.0.1(和compileSdk 26兼容的较新版本),记得模块级build.gradle里的所有play-services依赖也要同步修改。
3. 修正仓库配置
你之前的项目级build.gradle里注释掉了google(),还重复添加了maven.google.com仓库,这会导致依赖下载不顺畅。确保google()仓库在最前面,并且去掉重复的maven.google.com配置——因为google()已经包含了这个仓库的内容。
4. 清理缓存重新构建
做完上面的修改后,咱们清理一下缓存再重新构建:
- 打开Android Studio,点击
File -> Invalidate Caches / Restart,选择Invalidate and Restart - 或者在终端执行以下命令:
cd android ./gradlew clean cd .. npm install react-native run-android
另外,你可以检查一下react-native-maps的版本是否和你的React Native版本兼容,如果你的RN版本比较老(比如0.5x系列),建议安装对应兼容的react-native-maps版本(比如0.22.x),避免出现依赖不匹配的问题。
内容的提问来源于stack exchange,提问作者Harshal Kalavadiya

