Android Studio 3.1.6 Gradle项目同步失败,报PKIX证书路径构建错误
看起来你遇到的是SSL证书信任链问题,导致Gradle没法从Maven中央仓库拉取Kotlin相关的依赖包,进而触发了同步失败。结合你同时装了新版Android Studio的情况,我给你整理了几个针对性的解决步骤:
问题核心分析
从你贴的错误日志里,关键的报错信息是:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
本质原因是Android Studio 3.1.6自带的JDK(或者你当前使用的JDK)的证书信任库里,没有包含Maven中央仓库的SSL证书,导致HTTPS请求被安全验证拦截了。新版AS的JDK一般不会影响旧版,但旧版AS的JDK版本偏老,证书池可能没及时更新。
解决方案
1. 给旧版AS的内置JDK导入Maven仓库证书(推荐长期方案)
这是最稳妥的解决方式,一步到位解决证书信任问题:
- 第一步:找到Android Studio 3.1.6的内置JDK路径
- Windows:一般在
你的AS安装目录\jre - Mac:
/Applications/Android Studio 3.1.6.app/Contents/jre/jdk/Contents/Home
- Windows:一般在
- 第二步:导出Maven仓库的SSL证书
用浏览器打开Maven仓库地址,点击地址栏的锁形图标,导出证书(格式选.crt就行) - 第三步:用
keytool命令导入证书到JDK信任库
打开终端/命令提示符,执行下面的命令(记得替换成你自己的路径):
执行时会提示输入信任库密码,默认密码是keytool -importcert -file 你导出的证书路径.crt -keystore "AS内置JDK路径/jre/lib/security/cacerts" -alias maven-centralchangeit,输入后确认导入就好。 - 最后重启Android Studio 3.1.6,重新执行Gradle同步。
2. 临时跳过SSL证书验证(仅紧急测试用)
如果暂时没时间导入证书,可以临时让Gradle跳过SSL验证,但这个方法不安全,别长期用:
在项目根目录的gradle.properties文件里加以下配置:
org.gradle.jvmargs=-Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore="AS内置JDK路径/jre/lib/security/cacerts" -Djavax.net.ssl.trustStorePassword=changeit
保存后重新同步Gradle就能临时绕开验证。
3. 确认旧版AS用内置JDK,避免和新版冲突
新版AS可能会修改系统环境变量里的JDK路径,导致旧版AS调用了不兼容的JDK。你可以手动指定旧版AS用自己的内置JDK:
- 打开Android Studio 3.1.6,进入
File > Project Structure > SDK Location - 在
JDK location选项里,选AS内置的JDK(就是第一步找的那个路径,别选系统JDK或者新版AS的JDK)
4. 适配旧版AS的依赖版本(辅助优化)
你的项目里用的Kotlin Gradle插件是1.3.72,Gradle插件是3.3.1,虽然理论上兼容,但Android Studio 3.1.6对高版本Kotlin插件的支持可能不够完善。如果证书问题解决后还有同步问题,可以试试把Kotlin插件版本降到和Gradle 3.3.1更匹配的1.3.11:
修改项目根目录build.gradle里的Kotlin插件版本:
buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.11" } }
额外提示
两个版本的Android Studio默认是独立运行的,它们的Gradle配置、JDK环境都是分开的,所以新版AS一般不会直接导致旧版的证书问题,不用太担心两者冲突。先优先解决证书信任的核心问题,其他小问题可以再慢慢排查~




