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

Flutter应用无法运行:java.lang.IncompatibleClassChangeError报错求助

解决Flutter运行报错java.lang.IncompatibleClassChangeError: Found interface com.google.android.gms.location.SettingsClient

这个错误几乎都是Google Play Services相关依赖版本冲突导致的——不同依赖库引用了不一致的play-services-location版本,造成接口与实现不匹配。以下是针对性的解决步骤:

  • 统一Play Services依赖版本
    打开android/app/build.gradle,检查所有com.google.android.gms:play-services-*开头的依赖,确保它们的版本号完全一致。如果使用了定位类Flutter插件(如geolocator),插件可能自带低版本依赖,需强制统一版本:
    在android/build.gradle的allprojects块中添加版本强制策略:

    allprojects {
        repositories {
            google()
            mavenCentral()
        }
        configurations.all {
            resolutionStrategy {
                // 替换为当前兼容的稳定版本,比如18.0.0或更高
                force 'com.google.android.gms:play-services-location:18.0.0'
            }
        }
    }
    
  • 更新Flutter依赖与插件
    执行命令更新所有pub依赖:

    flutter pub upgrade
    

    同时检查pubspec.yaml中定位相关插件(如geolocator)的版本,升级到最新稳定版。

  • 彻底清理缓存
    除了flutter clean,还需:

    • 删除android/.gradle文件夹
    • 执行flutter pub get重新拉取依赖
    • 模拟器可通过AVD管理器执行「Wipe Data」清除数据;真机卸载应用后清除系统缓存
  • 适配SDK版本
    确保android/app/build.gradle中的compileSdkVersion和targetSdkVersion为较新版本(如33或34),与Play Services依赖版本兼容。

内容的提问来源于stack exchange,提问作者Abdul Kader Hridoy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:35:23