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

Flutter 2.2.3运行失败:geolocator_android定位相关编译报错如何解决?

报错原因
  • 你使用的geolocator_android 2.1.0版本适配了Android 12(API级别31,对应版本代号S),但你的当前Flutter项目Android编译SDK版本低于31,无法识别Android 12新增的S版本常量和isMock()位置校验方法,导致Java编译阶段符号找不到报错。
  • 你当前使用的Flutter 2.2.3默认的Android编译SDK版本为30,刚好低于geolocator_android 2.1.0要求的最低编译SDK版本31,版本不匹配是核心诱因。
可行解决方案

方案1:固定geolocator_android低版本(无需改动项目配置,最快生效)

在项目根目录的pubspec.yaml文件中,添加依赖覆盖配置,强制使用适配低编译SDK的geolocator_android版本:

dependency_overrides:
  geolocator_android: 2.0.1

保存后执行flutter pub get重新拉取依赖,再运行flutter run即可。

方案2:升级项目Android编译SDK版本(适配新版本定位库特性)

打开项目android/app/build.gradle文件,修改编译SDK配置:

  • 将compileSdkVersion的数值从30改为31
  • 可同步将targetSdkVersion也改为31,避免运行时适配警告
    修改后同步Gradle配置,重新运行项目即可。

方案3:升级Flutter版本(长期适配方案)

你当前使用的Flutter 2.2.3属于较老的稳定版,升级到2.10及以上的稳定版,默认Android编译SDK版本已提升至31以上,可直接兼容新版本geolocator组件,无需额外修改配置。

内容的提问来源于stack exchange,提问作者Mr. Robot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:45:04