You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android Studio 3.1.6 Gradle项目同步失败,报PKIX证书路径构建错误

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
  • 第二步:导出Maven仓库的SSL证书
    用浏览器打开Maven仓库地址,点击地址栏的锁形图标,导出证书(格式选.crt就行)
  • 第三步:用keytool命令导入证书到JDK信任库
    打开终端/命令提示符,执行下面的命令(记得替换成你自己的路径):
    keytool -importcert -file 你导出的证书路径.crt -keystore "AS内置JDK路径/jre/lib/security/cacerts" -alias maven-central
    
    执行时会提示输入信任库密码,默认密码是changeit,输入后确认导入就好。
  • 最后重启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一般不会直接导致旧版的证书问题,不用太担心两者冲突。先优先解决证书信任的核心问题,其他小问题可以再慢慢排查~

火山引擎 最新活动