React Native执行run-android下载Gradle时出现PKIX错误与403响应码如何解决
排查解决步骤
- 首先确认证书导入的JDK路径是否正确
多数导入证书无效的场景是系统存在多个JDK环境,你导入证书的JDK并非React Native/Android构建实际调用的版本:- 先执行
java -version确认终端默认的Java版本,再打开Android Studio的Project Structure > SDK Location > Gradle Settings确认Gradle使用的JDK路径,二者需保持一致 - 确认路径后重新导入Gradle官网证书到对应JDK的
jre/lib/security/cacerts文件,导入命令参考:keytool -import -alias gradle_service -file 你的证书路径 -keystore 对应JDK下的cacerts路径,默认密钥库密码为changeit - 导入后执行
keytool -list -keystore 对应JDK下的cacerts路径 -alias gradle_service确认证书导入成功
- 先执行
- 直接使用本地Gradle包跳过在线下载
这是最稳妥的规避方案,不需要处理证书问题:- 手动下载对应版本的Gradle压缩包(不要解压),放入项目
android/gradle/wrapper/目录下 - 修改同目录下的
gradle-wrapper.properties文件,将distributionUrl参数改为distributionUrl=./gradle-xxx-all.zip(xxx替换为你下载的版本号),构建时会直接读取本地压缩包,不会发起在线请求
- 手动下载对应版本的Gradle压缩包(不要解压),放入项目
- 排查代理/内网环境影响
如果你处于公司内网或开启了网络代理,证书校验失败大概率是因为代理服务替换了SSL证书:- 先检查全局Gradle配置文件(Windows路径为
C:\Users\你的用户名\.gradle\gradle.properties,Mac/Linux为~/.gradle/gradle.properties),确认是否配置了无效代理,不需要代理的话直接删除所有systemProp.http/systemProp.https开头的配置项 - 若必须使用代理,导出你当前使用的代理工具的根CA证书,再导入到上述对应JDK的cacerts密钥库中即可
- 先检查全局Gradle配置文件(Windows路径为
补充:Gradle官方已全面禁用HTTP协议下载资源,因此修改为HTTP后返回403属于正常现象,无需再尝试该方案。
内容的提问来源于stack exchange,提问作者danny wu
相关产品推荐
相关产品推荐

