You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter构建失败geolocator_android包编译错误如何解决?

问题原因分析

本次构建失败核心是geolocator_android依赖包版本与项目Android编译配置不匹配:
你使用的geolocator_android 2.0.0版本新增了Android 12(API级别31,代号S)的适配逻辑,调用了只有Android 12 SDK才支持的VERSION_CODES.S常量和Location.isMock()方法,但你当前项目的Android编译SDK版本(compileSdkVersion)低于31,编译器无法识别这两个符号,直接抛出编译错误。
虽然你本地已经安装了Android SDK 31,但项目配置中没有指定使用该版本SDK进行编译,因此触发报错。

可行解决方案

提供两种可落地的方案,按需选择即可:

方案一:升级项目Android编译SDK版本(推荐)

这是适配最新依赖包的最优方案,不会损失依赖包的新特性:

  • 打开项目路径下的android/app/build.gradle文件
  • 找到android配置块内的compileSdkVersion配置项,将数值修改为31,如无该配置项直接新增即可
  • 可选操作:同步将同配置块内的targetSdkVersion也修改为31,避免后续运行时出现适配问题
  • 保存配置后重新执行构建任务即可

方案二:锁定geolocator_android低版本

如果暂时不想升级编译SDK,可以通过强制依赖旧版本的方式规避适配问题:

  • 打开项目根目录的pubspec.yaml文件
  • 新增dependency_overrides配置块(如已有则直接在块内添加内容),指定geolocator_android的低版本:
dependency_overrides:
  geolocator_android: ^1.0.0
  • 执行flutter pub get命令重新拉取依赖
  • 重新执行构建任务即可

通用排查操作

如果执行上述操作后仍有异常,先执行flutter clean命令清理项目本地构建缓存,再重新执行构建即可。

内容的提问来源于stack exchange,提问作者Choi yun seok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:09:03