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
相关产品推荐
相关产品推荐

