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

引入Geolocator 2.1.1(非AndroidX版本)后遇重复类错误求助

解决 android.support.v4.app.INotificationSideChannel 重复类构建错误

嘿,我来帮你搞定这个头疼的构建错误!你遇到的是典型的Android Support库依赖冲突:项目里的多个依赖同时引入了相同的android.support.v4相关类,D8合并DEX归档的时候就会报错。

问题根源

你现在用的都是AndroidX推出前的旧版Flutter依赖,新增的geolocator: 2.1.1大概率间接引入了某个和你现有依赖重复的Support库组件,尤其是INotificationSideChannel这个类,导致了重复冲突。

一步步解决问题

1. 先找出到底是谁在重复引入依赖

运行这条命令查看所有依赖的树形结构,就能定位到重复引入Support库的依赖:

flutter pub deps --tree

重点盯着android.support.v4相关的条目,看看除了geolocator之外,还有哪些依赖也带了它。

2. 强制所有依赖用同一个Support库版本

打开你Android模块下的build.gradle(不是项目根目录的那个),添加这段配置,强制所有依赖使用同一版本的Support库:

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:28.0.0' // 这是Support库最后一个稳定版,适配大部分旧依赖
    }
}

如果你的项目原本用的是其他版本,替换成你对应的版本就行。

3. 清理缓存重新构建

执行下面的命令,把旧缓存清干净再重新构建:

flutter clean
flutter pub get
flutter run

4. 备选方案:升级到AndroidX(如果能接受的话)

如果上面的方法没解决,也可以试试升级到AndroidX——Jetifier工具会自动把旧的Support库依赖转换成AndroidX版本:

  • 打开android/gradle.properties,添加这两行:
    android.useAndroidX=true
    android.enableJetifier=true
    
  • 然后同样运行flutter clean和flutter pub get,再重新构建项目。

额外提醒

你的不少依赖版本真的挺老了(比如image_cropper:0.0.9、webview_flutter:0.2.0),这些旧依赖本身就容易引发依赖冲突。如果条件允许,建议慢慢把这些依赖升级到较新的兼容版本,能少踩很多坑。


内容的提问来源于stack exchange,提问作者Figen Güngör

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:41:24