Flutter应用构建失败:PKIX路径构建错误求助
问题背景
构建命令:flutter build apk --split-per-abi prod -t lib/main.dart --no-sound-null-safety
报错信息:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
已尝试操作:清理Android Studio缓存、删除Flutter缓存、执行flutter clean && flutter pub get、切换至Flutter稳定通道,问题未解决。浏览器可正常下载依赖资源,但构建过程无法获取。
解决方案
手动导入证书到Java keystore
- 打开浏览器访问依赖所在的仓库地址,导出网站的SSL证书(保存为.crt格式)
- 定位Flutter使用的JDK路径,通常在
flutter/bin/cache/artifacts/engine/android-arm64-release/openjdk,或者Android Studio自带的JDK目录 - 执行证书导入命令:
keytool -importcert -file /你的证书路径/xxx.crt -keystore /JDK路径/lib/security/cacerts -alias "repo-cert" - 输入keystore默认密码
changeit,确认导入即可
临时关闭Gradle SSL验证(应急用)
在项目android/build.gradle中添加配置:allprojects { repositories { // 保留原有仓库配置 } configurations.all { attributes.attribute(VerificationTypeAttributes.VERIFICATION_TYPE, VerificationTypeAttributes.NONE) } }同时在
gradle.properties中添加:systemProp.javax.net.ssl.trustStore=/JDK路径/lib/security/cacerts systemProp.javax.net.ssl.trustStorePassword=changeit注意:此方案仅作临时应急,长期使用会有安全风险
检查系统代理与Gradle代理配置
关闭系统全局代理,或者确保Gradle使用的代理配置包含正确的证书。同时检查~/.gradle/gradle.properties文件,删除残留的无效代理配置项更新Gradle与Android插件版本
打开android/build.gradle,将com.android.tools.build:gradle更新至最新稳定版,同步更新gradle/wrapper/gradle-wrapper.properties中的Gradle版本,确保两者版本兼容
内容的提问来源于stack exchange,提问作者Ruelos Joel

