Flutter安卓运行报unable to find valid certification path错误如何解决
Flutter安卓端运行PKIX证书校验失败解决方案
该报错是安卓构建阶段Gradle下载依赖资源时,Java环境的SSL证书校验不通过导致,Web端运行无需经过Gradle安卓构建流程,因此不会触发该错误。
修复步骤
- 切换网络环境
如果你当前使用公司内网、自定义代理或VPN,这类网络通常会对HTTPS请求做SSL劫持,Java默认信任库没有内置对应自签名证书,就会触发校验失败。先切换到公共家庭/手机热点网络后重新运行构建。 - 替换Gradle为国内镜像源
打开项目android/build.gradle文件,将repositories代码块的默认google、mavenCentral源替换为阿里云镜像:
同时修改repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/public' } }android/settings.gradle文件中pluginManagement和dependencyResolutionManagement两个代码块的仓库地址,替换为上述阿里云镜像地址。 - 导入证书到Java信任库(上述方案无效时使用)
用浏览器访问Gradle要下载的目标域名,导出站点的根证书,格式选择DER编码二进制。
打开JDK安装目录,进入jre/lib/security路径,执行如下命令导入证书:keytool -import -alias 自定义证书别名 -keystore cacerts -file 导出的证书文件路径
输入默认密码changeit,确认导入完成后重启IDE重新构建即可。 - 临时关闭SSL校验(仅用于排查问题,不推荐长期使用)
打开android/gradle.properties文件,添加如下配置忽略SSL校验:# Windows系统使用以下配置 systemProp.javax.net.ssl.trustStore=NUL systemProp.javax.net.ssl.trustStoreType=Windows-ROOT # Mac/Linux系统使用以下配置 # systemProp.javax.net.ssl.trustStore=/dev/null # systemProp.javax.net.ssl.trustStoreType=KeychainStore
内容的提问来源于stack exchange,提问作者Naga Raj
相关产品推荐
相关产品推荐

