Flutter构建报错:无法解析com.google.android.gms:play-services-location:16.+
问题根因
本次报错本质是Gradle拉取com.google.android.gms:play-services-location依赖时,访问Google Maven仓库的SSL证书验证失败,无法获取依赖元数据导致构建终止。
排查与解决步骤
- 优先替换国内Maven镜像源
国内网络环境无法正常访问Google官方仓库时,修改项目根目录android/build.gradle和android/app/build.gradle下的repositories配置,替换原有官方源:repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } // 可保留原有官方源作为兜底 google() mavenCentral() } - 处理证书拦截问题
如果是公司内网开启了代理或SSL证书拦截,需要将内网根证书导入构建所用JDK的信任证书库,执行命令如下(默认密钥为changeit):keytool -import -alias 自定义证书别名 -file 你的证书文件路径 -keystore $JDK_HOME/jre/lib/security/cacerts - 检查代理配置
确认本地全局代理配置和Gradle代理配置匹配,可在android/gradle.properties中添加正确的代理配置,或临时关闭代理后重试构建。 - 锁定依赖版本
不要使用location: any的模糊版本声明,在pubspec.yaml中锁定location的稳定兼容版本,示例:
如需强制指定play-services-location版本,可在dependencies: flutter: sdk: flutter location: ^5.0.3android/app/build.gradle的dependencies块中添加配置:dependencies { implementation 'com.google.android.gms:play-services-location:21.0.1' // 保留其他原有依赖配置 } - 清理缓存重试
依次执行以下命令清理缓存后重新构建:
也可手动删除安卓目录下的flutter clean flutter pub get.gradle缓存文件夹后再重试。
内容的提问来源于stack exchange,提问作者Alam merdeka
相关产品推荐
相关产品推荐

