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

Flutter 2.8.0调试gradle报错:geolocator相关API已废弃

问题描述

运行基于Flutter 2.8.0版本的项目时,调试阶段因geolocator: 6.2.1出现编译错误,具体报错如下:

C:\Users\user\Downloads\flutter_windows_2.8.0-stable\flutter\.pub-cache\hosted\pub.dartlang.org\geolocator-6.2.1\android\src\main\java\com\baseflow\geolocator\location\LocationManagerClient.java:10: warning: [deprecation] LocationProvider in android.location has been deprecated
import android.location.LocationProvider;
                       ^
error: warnings found and -Werror specified
C:\Users\user\Downloads\flutter_windows_2.8.0-stable\flutter\.pub-cache\hosted\pub.dartlang.org\geolocator-6.2.1\android\src\main\java\com\baseflow\geolocator\location\LocationMapper.java:29: warning: [deprecation] isFromMockProvider() in Location has been deprecated
      position.put("is_mocked", location.isFromMockProvider());

尝试升级geolocator至最新版本后,又出现其他适配错误。

解决方案

方案1:指定兼容Flutter 2.8.0的geolocator版本

Flutter 2.8.0属于旧版本,最新版geolocator通常要求更高的Flutter/Dart环境。可以选择既修复了废弃API问题、又兼容Flutter 2.8.0的版本,比如7.7.0。修改pubspec.yaml:

dependencies:
  geolocator: ^7.7.0

执行flutter pub get更新依赖。

方案2:修改Android编译配置,禁用警告转错误

报错核心是Android编译时开启了-Werror,将废弃API的警告直接判定为错误。可以通过修改gradle配置关闭该规则:

  1. 打开android/app/build.gradle
  2. 在android代码块中添加如下配置:
android {
    // 保留原有配置,新增以下内容
    lintOptions {
        abortOnError false // 禁用警告触发编译失败
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
        compilerArgs << "-Xlint:-deprecation" // 忽略废弃API警告
    }
}

或者在android/gradle.properties中添加一行:

android.lintOptions.abortOnError=false

方案3:适配最新版geolocator的API(若坚持升级)

若升级后出现其他错误,通常是API调用方式或权限配置变更导致:

  • 检查并修改代码中geolocator的调用逻辑:比如新版中权限请求、定位方法的参数或返回值有变化,需替换为新版API(例如Geolocator.checkPermission()替代旧版权限检查方式)。
  • 确认AndroidManifest.xml中已添加必要权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • 查看geolocator的版本说明,确认其与Flutter 2.8.0的兼容范围,若版本跨度太大,可能需要小幅升级Flutter版本(比如升级到2.10.x)以适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:38:19