Flutter应用集成Google Maps时出现play-services-maps依赖缺失构建报错
报错原因
该错误是Gradle构建过程中无法从配置的仓库拉取到指定版本的play-services-maps依赖包导致的,常见触发原因包括仓库配置错误、依赖版本过期、网络无法访问Google官方maven仓库、Gradle缓存异常四类。
解决方案
- 修正Gradle仓库配置
打开项目根目录下的android/build.gradle文件,检查allprojects->repositories配置块,确保google()、mavenCentral()放在仓库列表的最靠前位置,移除已经停用的jcenter()仓库,也不要添加会拦截Google依赖的非官方镜像源。配置样例如下:allprojects { repositories { google() mavenCentral() // 其他业务需要的仓库放在后面 } } - 调整依赖版本
优先将项目中引入的google_maps_flutter插件升级到最新正式版,插件会自动适配可用的play-services-maps版本。如果需要手动指定版本,可在android/app/build.gradle的dependencies块中添加更高版本的依赖声明:dependencies { implementation 'com.google.android.gms:play-services-maps:18.2.0' // 其他原有依赖保留 } - 解决网络访问问题
如果处于无法直接访问Google服务的网络环境,可给Gradle配置合法的代理,或者替换google()为国内可用的谷歌镜像源。 - 清理缓存重新构建
依次执行以下命令清理缓存后再重新运行项目:- Flutter项目根目录执行
flutter clean - 执行
flutter pub get - 进入android子目录,执行
./gradlew clean(Windows系统执行gradlew.bat clean)
- Flutter项目根目录执行
- 关闭Gradle离线模式
如果使用Android Studio开发,确认Gradle面板中的离线模式开关处于关闭状态,避免本地没有缓存的情况下无法拉取新依赖。
内容的提问来源于stack exchange,提问作者Ahmed Sabahy
相关产品推荐
相关产品推荐

