使用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生态:
- 打开Flutter项目里的
android/app/build.gradle文件 - 找到
compileSdkVersion配置项,把它改成31(或更高的稳定API版本):android { compileSdkVersion 31 // 原来的版本大概率是30或更低 // ...其他配置内容 } - 同步更新
targetSdkVersion到31或更高:defaultConfig { // ...其他配置 targetSdkVersion 31 } - 打开Android Studio的SDK Manager,安装API 31对应的SDK组件(如果还没装的话)
方法2:降级Geolocator依赖版本
如果暂时不想升级SDK版本,可以先降级到不依赖API 31的旧版本:
- 打开项目根目录的
pubspec.yaml文件 - 修改
geolocator的版本号,比如选择兼容低版本SDK的稳定版:dependencies: geolocator: ^7.7.0 # 这个版本的Android依赖不会强制要求API 31 - 执行命令更新依赖:
flutter pub get
收尾操作
不管选哪种方法,最后建议清理一下项目缓存再重新编译:
flutter clean flutter pub get
内容的提问来源于stack exchange,提问作者Cheetech
相关产品推荐
相关产品推荐

