如何解决React Native项目中segment_analytics-react-native模块的Gradle依赖解析失败问题?
解决Gradle无法解析com.android.tools.build:gradle:3.1.4的问题
我之前也碰到过几乎一模一样的构建失败问题,核心是Gradle版本与Android插件版本不兼容,再加上TLS协议和证书信任的双重影响。下面是我亲测有效的几种解决办法,你可以按顺序尝试:
1. 优先修复Gradle与插件版本的兼容性问题
你当前使用的Gradle版本是7.2,但com.android.tools.build:gradle:3.1.4是非常旧的插件版本(对应Gradle 4.4~5.6.4区间),高版本Gradle已经不再支持这么老的插件,这大概率是核心诱因。
修改步骤:
- 打开项目根目录的
build.gradle文件,更新Android Gradle插件版本到与Gradle7.2匹配的7.2.0:buildscript { repositories { google() mavenCentral() } dependencies { // 替换成与Gradle7.2兼容的插件版本 classpath 'com.android.tools.build:gradle:7.2.0' } } - 同时检查
gradle/wrapper/gradle-wrapper.properties文件,确保distributionUrl对应正确的Gradle版本:distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
2. 调整TLS协议配置
如果版本兼容后还是有TLS相关错误,可以在项目根目录的gradle.properties中添加强制TLS版本的配置:
# 强制使用兼容的TLS版本 systemProp.https.protocols=TLSv1.2,TLSv1.3 # 配置信任库(可选,若证书问题依然存在) systemProp.javax.net.ssl.trustStoreType=JKS systemProp.javax.net.ssl.trustStore=${java.home}/lib/security/cacerts systemProp.javax.net.ssl.trustStorePassword=changeit
3. 解决PKIX证书路径问题
这个错误提示本地JDK信任库没有包含maven仓库的证书,手动导入即可:
- 用浏览器打开maven.google.com,点击地址栏的锁图标,导出网站的证书(选择DER格式保存);
- 打开终端,执行keytool命令导入证书到JDK信任库(替换路径为你的证书位置和JDK路径):
keytool -import -alias maven-google -file /path/to/your/certificate.cer -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit - 重启IDE和终端,重新执行构建命令。
4. 替换为国内镜像仓库
如果官方仓库访问不稳定,可以换成阿里云镜像加速,修改项目根目录的build.gradle:
buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } mavenCentral() } // ... 其他依赖配置 } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } mavenCentral() } }
建议先从版本兼容性入手,这个解决后大部分问题都会消失,剩下的证书或网络问题再用后面的方法补充处理。
内容的提问来源于stack exchange,提问作者John Perera
相关产品推荐
相关产品推荐

