升级Android Studio 3.1后项目编译失败,Gradle同步遇SSL证书错误求助
解决Android Studio 3.1升级后Gradle同步SSL握手错误
这个错误本质是Gradle访问远程仓库(比如Google Maven、JCenter)时,服务器的SSL证书没被你的JDK信任库识别——不用自己创建证书,只要把对应仓库的证书导入JDK信任库就行,具体步骤如下:
1. 导出目标仓库的SSL证书
比如如果是访问Google Maven仓库出问题,打开浏览器访问https://dl.google.com/dl/android/maven2/:
- 点击地址栏左侧的锁形图标 → 选择「证书」
- 切换到「详细信息」标签页 → 点击「复制到文件」
- 选择「DER编码二进制格式(.CER)」,将证书保存到本地(比如命名为
google_maven.cer)
2. 找到Android Studio使用的JDK路径
打开Android Studio:
- 顶部菜单选择「File」→「Project Structure」→「SDK Location」
- 找到「JDK Location」的路径,示例路径:
- Mac:
/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home - Windows:
C:\Program Files\Android\Android Studio\jre\jdk
- Mac:
3. 使用keytool导入证书到信任库
打开终端(Mac/Linux)或命令提示符(Windows):
- 进入JDK的
bin目录,比如Mac下执行:cd /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin - 执行导入命令(替换证书路径为你刚才保存的实际路径):
keytool -import -alias google_maven -keystore ../lib/security/cacerts -file /Users/yourname/Downloads/google_maven.cer- 输入信任库默认密码:
changeit - 提示是否信任此证书时,输入
y确认
- 输入信任库默认密码:
4. 重启Android Studio并重新同步Gradle
关闭Android Studio后重新打开,点击「Sync Project with Gradle Files」按钮,应该就能正常同步了。
临时替代方案(不推荐,不安全)
如果暂时不想导入证书,可以修改项目根目录的build.gradle,把HTTPS仓库换成HTTP:
repositories { // 替换google()为下面的HTTP地址 maven { url 'http://dl.google.com/dl/android/maven2/' } maven { url 'http://jcenter.bintray.com/' } }
但这种方式会让你的项目传输数据时失去SSL加密保护,只适合临时测试用。
内容的提问来源于stack exchange,提问作者Ajit Sharma




