Flutter升级firebase_messaging后MainActivity无法转Application报错如何解决
报错原因
Android系统中Application和Activity是完全独立的两种组件类型:
<application>节点的android:name属性用于指定应用全局的自定义Application子类,系统启动应用时会优先实例化该类作为应用的全局上下文- 你配置的
MainActivity继承自FlutterActivity,属于页面组件类,完全不符合Application类的类型要求,系统实例化时尝试将Activity强转为Application就直接抛出了类型转换异常,这就是崩溃的直接原因。
解决步骤
- 修改
AndroidManifest.xml中的<application>节点配置,直接删除android:name=".MainActivity"这一行即可。不需要自定义Application时,系统会自动使用默认的android.app.Application实例,新版firebase_messaging无需额外自定义Application即可正常处理后台消息。 - 清理项目旧构建缓存:执行命令
flutter clean,之后重新运行项目即可正常启动。 - 可选操作:删除项目中旧版残留的
Application.java自定义类文件,避免后续出现不必要的代码冲突。
内容的提问来源于stack exchange,提问作者Ahmed Wagdi
相关产品推荐
相关产品推荐

