升级Android Studio 3.3后出现PKIX路径构建失败问题求助
刚升级Android Studio 3.3就碰到这种构建报错?别慌,这是因为你的JVM信任库中没有JitPack网站的SSL证书,导致HTTPS请求时证书验证不通过,没法拉取com.github.chrisbanes:PhotoView:2.3.0和com.github.yalantis:ucrop:2.2.2这些依赖。
先给你划重点,报错的核心原因就是这句:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
下面给你几个可行的解决办法,按优先级推荐:
方法一:手动导入JitPack证书到JVM信任库(安全可靠,推荐)
这是最规范的解决方式,步骤清晰明了:
- 导出JitPack的SSL证书:
打开浏览器访问https://jitpack.io,点击地址栏的锁形图标 → 查看证书详情 → 导出为.crt格式(比如命名为jitpack.crt)。 - 找到Android Studio使用的JDK路径:
在Android Studio中依次点击File > Project Structure > SDK Location,复制JDK Location显示的完整路径。 - 用keytool命令导入证书:
打开终端(Windows用命令提示符,Mac/Linux用终端),执行以下命令(记得替换<JDK路径>和<证书存放路径>为你自己的实际路径):
执行时会提示输入密钥库密码,默认密码是keytool -importcert -file <证书存放路径>/jitpack.crt -keystore <JDK路径>/jre/lib/security/cacerts -alias jitpackchangeit,输入后确认导入即可。
方法二:临时禁用SSL证书验证(仅适合调试,不推荐生产)
如果只是想快速调试解决问题,可以临时跳过证书验证,但注意这有安全风险,正式环境千万别用:
修改项目根目录的build.gradle中JitPack仓库的配置,添加跳过验证的参数:
allprojects { repositories { jcenter() google() maven { url "https://jitpack.io" allowInsecureProtocol = true // 临时跳过SSL证书验证 } } }
方法三:升级Gradle和Android Gradle Plugin版本
Android Studio 3.3搭配的Gradle 4.10.1可能在证书处理上有兼容性问题,升级到更高版本的工具链可能自动修复这个问题:
- 修改根目录
build.gradle中的插件版本:buildscript { dependencies { classpath 'com.android.tools.build:gradle:4.0.0' // 升级到4.0及以上版本 } } - 修改
gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
(插件和Gradle版本的对应关系可以参考Android官方的版本匹配表)distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
验证解决效果
完成上述操作后,先执行Build > Clean Project清理项目缓存,然后重新点击Build > Make Project,应该就能正常拉取JitPack上的依赖了。
内容的提问来源于stack exchange,提问作者Anton Holovin

