Flutter调整minSdkVersion至19后旧安卓设备出现CERTIFICATE_VERIFY_FAILED报错
应用支持的安卓版本范围
根据你给出的build.gradle配置:
android { compileSdkVersion 30 defaultConfig { applicationId "com.example.test" minSdkVersion 19 targetSdkVersion 30 } }
minSdkVersion 19对应安卓4.4(KitKat),是你的应用可安装运行的最低系统版本compileSdkVersion 30、targetSdkVersion 30对应安卓11,是你应用完成适配的最高系统版本,更高版本安卓系统会以兼容模式运行你的应用
因此你当前应用的正式支持版本范围是安卓4.4 到 安卓11。
旧设备API加载失败问题
你提供的报错日志已经明确了故障原因:CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate 属于SSL证书校验失败,这是安卓7以下系统的常见问题,诱因有两类:
- 你调用的Web API所使用的HTTPS证书没有部署完整证书链,旧系统根证书库没有收录对应中间证书,无法完成信任校验
- 证书使用了旧系统加密库不支持的新加密标准,安卓6及更低版本默认支持的TLS版本、加密套件都比较旧,无法匹配新证书的要求
修复方案
可根据你的实际情况选择以下方案:
- 服务端侧修复:在API部署的Web服务中配置完整的SSL证书链(根证书+中间证书+域名证书),不要仅部署单张域名证书,这是最推荐的无侵入修复方式
- 客户端侧修复:将API对应的根证书内置到你的Flutter应用资源中,在网络请求初始化时手动配置信任该证书,跳过系统根证书库的校验
- 临时调试方案:调试阶段可暂时禁用全局SSL证书校验,该方案有严重安全风险,严禁在正式发布版本中使用
内容的提问来源于stack exchange,提问作者babayaro
相关产品推荐
相关产品推荐

