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

Flutter应用接收Firebase通知崩溃:FlutterFirebaseMessagingService类未找到

解决Flutter FCM接收通知时ClassNotFoundException崩溃问题

问题核心

日志明确抛出ClassNotFoundException: Didn't find class "com.eliteconect.app.io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService",根源是AndroidManifest中手动配置的FCM服务类路径错误——新版本firebase_messaging插件已自动处理服务注册,手动添加的旧路径类实际不存在。

解决方案

1. 移除AndroidManifest中手动添加的FCM服务配置

删除AndroidManifest.xml中这段自定义的服务声明:

<!-- 删掉这段错误的服务配置 -->
<service
    android:name=".io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService"
    android:exported="true"
    android:permission="com.google.android.c2dm.permission.SEND">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

新版本firebase_messaging会自动向清单中注入正确的服务类,无需手动配置。

2. 简化Firebase初始化代码

MainActivity.kt中无需手动调用FirebaseApp.initializeApp,firebase_core插件会自动完成初始化,移除后避免冲突:

import android.os.Bundle
import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 移除 FirebaseApp.initializeApp(this) 这行代码
    }
}

3. 清理并重建项目

执行以下命令彻底清理缓存,确保依赖和构建产物更新:

flutter clean
flutter pub get
cd android && ./gradlew clean && ./gradlew assembleDebug
cd .. && flutter run

4. 检查依赖版本兼容性(可选)

当前使用的firebase_messaging: ^15.1.3与Flutter 3.24.4兼容,若问题仍存在,可尝试升级到最新稳定版:

flutter pub upgrade firebase_messaging

5. 混淆规则配置(若启用R8/ProGuard)

如果项目开启了代码混淆,需在android/app/proguard-rules.pro中添加FCM相关类的保留规则:

-keep class io.flutter.plugins.firebasemessaging.** { *; }
-keep class com.google.firebase.messaging.** { *; }

验证

重新运行应用后发送测试通知,确认应用不再崩溃且能正常接收通知。

内容的提问来源于stack exchange,提问作者Otmane Elb Elbaghzaoui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:44:59