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

使用IntelliJ IDEA构建Flutter项目时出现Gradle编译错误求助

解决Geolocator Android依赖编译错误(找不到VERSION_CODES.S和isMock()方法)

我之前也踩过这个坑,本质问题很明确:你的Android项目编译SDK版本低于Android 12(API 31),而geolocator_android:2.1.0已经开始使用API 31才引入的新API了,所以编译器找不到对应的符号。

下面给你两种可行的解决思路,按需选择:

方法1:升级Android项目编译SDK版本

这是长期来看更稳妥的方案,适配新版本Android生态:

  1. 打开Flutter项目里的android/app/build.gradle文件
  2. 找到compileSdkVersion配置项,把它改成31(或更高的稳定API版本):
    android {
        compileSdkVersion 31 // 原来的版本大概率是30或更低
        // ...其他配置内容
    }
    
  3. 同步更新targetSdkVersion到31或更高:
    defaultConfig {
        // ...其他配置
        targetSdkVersion 31
    }
    
  4. 打开Android Studio的SDK Manager,安装API 31对应的SDK组件(如果还没装的话)

方法2:降级Geolocator依赖版本

如果暂时不想升级SDK版本,可以先降级到不依赖API 31的旧版本:

  1. 打开项目根目录的pubspec.yaml文件
  2. 修改geolocator的版本号,比如选择兼容低版本SDK的稳定版:
    dependencies:
      geolocator: ^7.7.0 # 这个版本的Android依赖不会强制要求API 31
    
  3. 执行命令更新依赖:
    flutter pub get
    

收尾操作

不管选哪种方法,最后建议清理一下项目缓存再重新编译:

flutter clean
flutter pub get

内容的提问来源于stack exchange,提问作者Cheetech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 16:39:07