Flutter项目Android端运行失败:Gradle assembleDebug任务报SSL证书错误
解决Flutter Android端运行时Gradle SSL证书验证失败问题
问题说明
新项目在Chrome(Web端)和macOS桌面端运行完全正常,但在Android设备(模拟器或真机)上运行时,Gradle执行assembleDebug任务失败,核心报错为:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解决方案
方案1:临时配置Gradle信任Android证书
在项目根目录的gradle.properties文件中添加以下配置,让Gradle使用Android自带的证书库:
systemProp.javax.net.ssl.trustStoreType=JKS systemProp.javax.net.ssl.trustStore=../.android/cacerts systemProp.javax.net.ssl.trustStorePassword=changeit systemProp.javax.net.ssl.trustStoreProvider=SunJSSE
方案2:导入缺失证书到JVM信任库
- 找到Gradle要访问的目标服务器(比如maven.google.com),用浏览器打开该网址,导出网站的SSL证书(格式选DER或PEM)。
- 获取Android Studio使用的JDK路径:打开Android Studio → File → Project Structure → SDK Location → JDK Location,复制该路径。
- 打开终端执行导入命令(替换占位符为实际路径):
keytool -import -alias gradle-cert -file /你导出的证书路径/certificate.cer -keystore /JDK路径/jre/lib/security/cacerts -storepass changeit
- 重启Android Studio后重新运行项目。
方案3:切换国内Gradle镜像仓库
修改项目android/build.gradle文件,将默认仓库替换为国内镜像(比如阿里云),避免证书验证问题:
buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } } }
方案4:检查代理配置
如果使用网络代理,确保Android Studio和Gradle的代理设置正确:
- 打开Android Studio → File → Settings → HTTP Proxy,确认代理地址、端口无误。
- 在
gradle.properties中补充代理配置(如有需要):
systemProp.http.proxyHost=你的代理地址 systemProp.http.proxyPort=你的代理端口 systemProp.https.proxyHost=你的代理地址 systemProp.https.proxyPort=你的代理端口
内容的提问来源于stack exchange,提问作者Arrio Gonsalves
相关产品推荐
相关产品推荐

