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

迁移至Android 12时Flutter依赖版本冲突引发运行报错

解决Flutter迁移Android 12时的依赖版本冲突问题

从你的报错信息和pubspec配置来看,问题核心是Firebase相关依赖版本不兼容,再加上手动锁定了平台接口版本,导致了方法不匹配、成员找不到等错误。下面是具体的解决步骤:

错误根源分析

  • 你通过dependency_overrides手动锁定了firebase_messaging_platform_interface: 3.2.1,但这个版本和你使用的firebase_messaging: ^13.1.0不兼容,直接引发了返回类型不匹配、方法找不到的错误。
  • firebase_core: ^1.12.0版本过旧,缺少FirebaseAppPlatform.verifyExtends方法,这是第三个报错的原因。
  • 旧版本Firebase依赖未适配Android 12的targetSdkVersion 31+要求,也会间接导致构建失败。

具体解决步骤

1. 移除冲突的依赖覆盖

打开pubspec.yaml,删除dependency_overrides下的firebase_messaging_platform_interface: 3.2.1行。手动锁定这个库的版本会破坏Firebase依赖链的兼容性,让Flutter自动匹配对应版本即可。

2. 更新Firebase相关依赖到兼容版本

将所有Firebase依赖更新到支持Android 12的稳定版本,确保版本间互相兼容。修改后的dependencies示例如下:

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  firebase_core: ^2.15.0  # 适配Android 12的新版本
  cloud_firestore: ^4.8.0
  firebase_storage: ^11.2.6
  file_picker: ^5.2.5
  path_provider: ^2.0.1
  image_picker: ^1.0.4
  firebase_messaging: ^14.6.3  # 与core版本兼容的messaging版本
  flutter_local_notifications: ^13.0.0
  cloud_functions: ^4.4.1
  firebase_auth: ^4.6.1
  animated_splash_screen: ^1.2.0
  diacritic: ^0.1.3
  restart_app: ^1.1.0

提示:你可以根据Flutter pub的最新稳定版调整版本号,优先选择同一大版本的Firebase库,兼容性更好。

3. 配置Android项目适配Android 12

打开android/app/build.gradle,确保编译和目标SDK版本符合要求:

android {
    compileSdkVersion 33  # 至少31,推荐使用最新稳定版

    defaultConfig {
        applicationId "com.yourpackage.atgapp"
        minSdkVersion 21  # 根据你的需求调整,最低21即可
        targetSdkVersion 33  # 必须>=31才能支持Android 12
        versionCode 1
        versionName "1.0"
    }
}

同时,在AndroidManifest.xml中给所有Activity、Service等组件添加android:exported属性(Android 12强制要求),比如启动Activity:

<activity
    android:name=".MainActivity"
    android:exported="true"
    android:launchMode="singleTop"
    android:theme="@style/LaunchTheme"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:windowSoftInputMode="adjustResize">

4. 清理缓存并重新获取依赖

执行以下命令,确保依赖完全更新:

flutter clean
flutter pub get

完成以上步骤后,重新构建项目,应该就能解决你遇到的所有依赖版本错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 18:15:35