Flutter 3.19.0升级后FirebaseCloudMessaging平台异常问题求解
Flutter 3.19.0 下 FirebaseCloudMessaging PlatformException(null-error) 解决办法
这个异常本质是Firebase Gradle插件配置不兼容AGP 8.0+(Flutter 3.19默认适配)导致的,旧方案的buildscript配置已被废弃,改用以下新配置方式即可解决:
1. 配置settings.gradle的插件管理
打开./android/settings.gradle,在pluginManagement区块中添加Firebase插件的仓库和版本声明:
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } plugins { id "com.google.gms.google-services" version "4.4.1" apply false // 若使用Crashlytics,可添加下方配置 // id "com.google.firebase.crashlytics" version "2.9.9" apply false } }
2. 在App模块应用Google Services插件
打开./android/app/build.gradle,在顶部的plugins区块中添加Google Services插件:
plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" id "com.google.gms.google-services" // 应用Google Services插件 }
3. 用Firebase BOM统一依赖版本
在./android/app/build.gradle的dependencies区块中,通过Firebase BOM管理所有Firebase依赖的版本,避免版本冲突:
dependencies { // 保留原有依赖,添加以下两行 implementation platform('com.google.firebase:firebase-bom:32.8.0') implementation 'com.google.firebase:firebase-messaging' }
4. 检查AndroidManifest配置
确保./android/app/src/main/AndroidManifest.xml包含FCM必要配置:
<!-- 基础权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application ...> <!-- 自定义消息接收服务(可选,如需处理消息则添加) --> <service android:name=".MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> </application>
注:MyFirebaseMessagingService需继承自FirebaseMessagingService,若无需自定义消息逻辑可暂时省略。
5. 清理缓存并重建项目
执行以下命令彻底清理缓存后重新构建:
flutter clean cd android && ./gradlew clean && ./gradlew build cd .. && flutter run
额外检查
确保pubspec.yaml中firebase_messaging插件使用适配Flutter 3.19的稳定版本:
firebase_messaging: ^14.7.11
内容的提问来源于stack exchange,提问作者YGranja
相关产品推荐
相关产品推荐

