Skip to content

🐛 [firebase_messaging] Conflict if using FlutterFragmentActivity - Android #4078

Description

@GioPan04

Bug report

Describe the bug
I'm using firebase_messaging 8.0.0-dev.8 and local_auth 0.6.2+3 in the same project. local_auth needs a FlutterFragmentActivity to work, so I'm using that and works. I need a background handler for the notifications, but when I set the handler for the background notifications i get this errors:

Open me
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): Failed to handle method call
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): java.lang.ClassCastException: io.flutter.embedding.android.FlutterFragmentActivity cannot be cast to io.flutter.embedding.android.FlutterActivity
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingPlugin.onMethodCall(FlutterFirebaseMessagingPlugin.java:300)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at android.os.MessageQueue.next(MessageQueue.java:336)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at android.os.Looper.loop(Looper.java:174)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at android.app.ActivityThread.main(ActivityThread.java:7356)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
E/MethodChannel#plugins.flutter.io/firebase_messaging(10254): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
E/flutter (10254): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: PlatformException(error, io.flutter.embedding.android.FlutterFragmentActivity cannot be cast to io.flutter.embedding.android.FlutterActivity, null, java.lang.ClassCastException: io.flutter.embedding.android.FlutterFragmentActivity cannot be cast to io.flutter.embedding.android.FlutterActivity
E/flutter (10254): 	at io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingPlugin.onMethodCall(FlutterFirebaseMessagingPlugin.java:300)
E/flutter (10254): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/flutter (10254): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/flutter (10254): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/flutter (10254): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (10254): 	at android.os.MessageQueue.next(MessageQueue.java:336)
E/flutter (10254): 	at android.os.Looper.loop(Looper.java:174)
E/flutter (10254): 	at android.app.ActivityThread.main(ActivityThread.java:7356)
E/flutter (10254): 	at java.lang.reflect.Method.invoke(Native Method)
E/flutter (10254): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
E/flutter (10254): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
E/flutter (10254): )
E/flutter (10254): #0      StandardMethodCodec.decodeEnvelope
package:flutter/…/services/message_codecs.dart:582
E/flutter (10254): #1      MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:159
E/flutter (10254): <asynchronous suspension>
E/flutter (10254): #2      MethodChannel.invokeMethod
package:flutter/…/services/platform_channel.dart:332
E/flutter (10254): #3      MethodChannel.invokeMapMethod
package:flutter/…/services/platform_channel.dart:359
E/flutter (10254): #4      MethodChannelFirebaseMessaging.registerBackgroundMessageHandler
package:firebase_messaging_platform_interface/…/method_channel/method_channel_messaging.dart:179
E/flutter (10254): #5      FirebaseMessagingPlatform.onBackgroundMessage=
package:firebase_messaging_platform_interface/…/platform_interface/platform_interface_messaging.dart:107
E/flutter (10254): #6      FirebaseMessaging.onBackgroundMessage
package:firebase_messaging/src/messaging.dart:103
E/flutter (10254): #7      NotificationsHandler.configure
package:testapp/utils/NotificationsHandler.dart:32
E/flutter (10254): #8      _HomeState.initState
package:testapp/main.dart:199
E/flutter (10254): #9      StatefulElement._firstBuild
package:flutter/…/widgets/framework.dart:4765
E/flutter (10254): #10     ComponentElement.mount
package:flutter/…/widgets/framework.dart:4601
E/flutter (10254): #11     Element.inflateWidget
package:flutter/…/widgets/framework.dart:3569
E/flutter (10254): #12     Element.updateChild
package:flutter/…/widgets/framework.dart:3327
E/flutter (10254): #13     SingleChildRenderObjectElement.mount
package:flutter/…/widgets/framework.dart:6118
E/flutter (10254): #14     Element.inflateWidget
package:flutter/…/widgets/framework.dart:3569
E/flutter (10254): #15     Element.updateChild
package:flutter/…/widgets/framework.dart:3327
E/flutter (10254): #16     ComponentElement.performRebuild
package:flutter/…/widgets/framework.dart:4652
E/flutter (10254): #17     Element.rebuild
package:flutter/…/widgets/framework.dart:4343
E/flutter (10254): #18     ComponentElement._firstBuild
package:flutter/…/widgets/framework.dart:4606
E/flutter (10254): #19     ComponentElement.mount
package:flutter/…/widgets/framework.dart:4601
E/flutter (10254): #20     Element.inflateWidget
package:flutter/…/widgets/framework.dart:3569
E/flutter (10254): #21     Element.updateChild
package:flutter/…/widgets/framework.dart:3327
E/flutter (10254): #22     SingleChildRenderObjectElement.mount
package:flutter/…/widgets/framework.dart:6118
E/flutter (10254): #23     Element.inflateWidget
package:flutter/…/widgets/framework.dart:3569
E/flutter (10254): #24     Element.updateChild
package:flutter/…/widgets/framework.dart:3327
E/flutter (10254): #25     SingleChildRenderObjectElement.mount
package:flutter/…/widgets/framework.dart:6118
E/flutter (10254): #26     Element.inflateWidget
package:flutter/…/widgets/framework.dart:3569
E/flutter (10254): #27     Element.updateChild
package:flutter/…/widgets/framework.dart:3327
E/flutter (10254): #28     ComponentElement.performRebuild
package:flutter/…/widgets/framework.dart:4652
E/flutter (10254): #29     StatefulElement.performRebuild
package:flutter/…/widgets/framework.dart:4800
E/flutter (10254): #30     Element.rebuild (pac

Steps to reproduce

Steps to reproduce the behavior:

  1. Create a project
  2. Add firebase_messaging 8.0.0-dev.8 and local_auth 0.6.2+3 in pubspec.yaml
  3. Change the activity name to io.flutter.embedding.android.FlutterFragmentActivity in android/app/src/main/AndroidManifest.xml
  4. Configure Firebase in main
  5. Configure firebase_messaging (with background handling)
  6. Start the app (in Android)

Expected behavior

local_auth and firebase_messaging shouldn't break when they are used in the same project


Flutter doctor

Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.22.2, on Microsoft Windows [Versione 10.0.19042.572], locale it-IT)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Android Studio (version 4.0)
[✓] VS Code (version 1.51.0)
[✓] Connected device (1 available)

• No issues found!

Flutter dependencies

Click To Expand
Dart SDK 2.10.2
Flutter SDK 1.22.2
testapp 1.0.4+6

dependencies:
- animations 1.1.2 [flutter]
- cached_network_image 2.2.0+1 [flutter flutter_cache_manager]
- camera 0.5.8+11 [flutter]
- clipboard 0.1.2+8 [flutter]
- cupertino_icons 0.1.3
- device_info 0.4.2+7 [flutter device_info_platform_interface]
- email_validator 1.0.5
- esys_flutter_share 1.0.2 [flutter path_provider]
- firebase_core 0.5.2 [firebase_core_platform_interface flutter quiver meta firebase_core_web]
- firebase_messaging 8.0.0-dev.8 [meta flutter firebase_core firebase_core_platform_interface firebase_messaging_platform_interface]
- flare_flutter 2.0.6 [flutter flare_dart meta]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_local_notifications 3.0.1+2 [flutter platform flutter_local_notifications_platform_interface timezone]
- flutter_localizations 0.0.0 [flutter intl characters collection meta path typed_data vector_math]
- flutter_secure_storage 3.3.3 [meta flutter]
- flutter_staggered_animations 0.1.2 [flutter]
- flutter_staggered_grid_view 0.3.0 [flutter]
- flutter_svg 0.18.1 [path_drawing xml vector_math meta flutter]
- hashids2 1.0.3
- http 0.12.2 [http_parser path pedantic]
- image_picker 0.6.7+7 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]
- intl 0.16.1 [path]
- local_auth 0.6.3+1 [flutter meta intl platform flutter_plugin_android_lifecycle]
- lottie 0.5.1 [flutter archive characters charcode collection logging meta path vector_math]
- mask_text_input_formatter 1.1.0 [flutter]
- overlay_support 1.0.5 [flutter async]
- package_info 0.4.3 [flutter]
- path_provider 1.6.14 [flutter path_provider_platform_interface path_provider_macos path_provider_linux]
- photo_manager 0.5.8 [flutter]
- progressive_image 1.0.1 [flutter]
- provider 4.3.2+1 [flutter nested collection]
- pull_to_refresh 1.6.1 [flutter]
- shared_preferences 0.5.10 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web]
- shimmer 1.1.1 [flutter]
- smooth_page_indicator 0.1.5 [flutter]
- uni_links 0.4.0 [flutter]
- url_launcher 5.5.2 [flutter url_launcher_platform_interface url_launcher_web url_launcher_linux url_launcher_macos]
- vibration 1.4.0 [flutter]
- video_player 0.10.12+2 [meta video_player_platform_interface video_player_web flutter]
- web_socket_channel 1.1.0 [async crypto stream_channel]

dev dependencies:
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]

transitive dependencies:
- archive 2.0.13 [crypto args path]
- args 1.6.0
- async 2.5.0-nullsafety.1 [collection]
- boolean_selector 2.1.0-nullsafety.1 [source_span string_scanner]
- characters 1.1.0-nullsafety.3
- charcode 1.2.0-nullsafety.1
- clock 1.1.0-nullsafety.1
- collection 1.15.0-nullsafety.3
- convert 2.1.1 [charcode typed_data]
- crypto 2.1.5 [collection convert typed_data]
- device_info_platform_interface 1.0.1 [flutter meta plugin_platform_interface]
- fake_async 1.2.0-nullsafety.1 [clock collection]
- file 5.2.1 [intl meta path]
- firebase_core_platform_interface 2.0.0 [flutter meta plugin_platform_interface quiver]
- firebase_core_web 0.2.1 [firebase_core_platform_interface flutter flutter_web_plugins meta js]
- firebase_messaging_platform_interface 1.0.0-dev.5 [flutter meta firebase_core plugin_platform_interface]
- flare_dart 2.3.4
- flutter_cache_manager 1.4.2 [flutter path_provider uuid http path sqflite pedantic clock file rxdart]
- flutter_local_notifications_platform_interface 2.0.0 [flutter plugin_platform_interface]
- flutter_plugin_android_lifecycle 1.0.8 [flutter]
- flutter_web_plugins 0.0.0 [flutter characters collection meta typed_data vector_math]
- http_parser 3.1.4 [charcode collection source_span string_scanner typed_data]
- image_picker_platform_interface 1.1.0 [flutter meta http plugin_platform_interface]
- js 0.6.2
- logging 0.11.4
- matcher 0.12.10-nullsafety.1 [stack_trace]
- meta 1.3.0-nullsafety.3
- nested 0.0.4 [flutter]
- path 1.8.0-nullsafety.1
- path_drawing 0.4.1+1 [vector_math meta path_parsing flutter]
- path_parsing 0.1.4 [vector_math meta]
- path_provider_linux 0.0.1+2 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_macos 0.0.4+3 [flutter]
- path_provider_platform_interface 1.0.3 [flutter meta platform plugin_platform_interface]
- pedantic 1.9.0
- petitparser 3.0.4 [meta]
- platform 2.2.1
- platform_detect 1.4.0 [meta pub_semver]
- plugin_platform_interface 1.0.2 [meta]
- process 3.0.13 [file intl meta path platform]
- pub_semver 1.4.4 [collection]
- quiver 2.1.3 [matcher meta]
- rxdart 0.24.1
- shared_preferences_linux 0.0.2+2 [file flutter meta path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 0.0.1+10 [shared_preferences_platform_interface flutter]
- shared_preferences_platform_interface 1.0.4 [meta flutter]
- shared_preferences_web 0.1.2+7 [shared_preferences_platform_interface flutter flutter_web_plugins meta]
- sky_engine 0.0.99
- source_span 1.8.0-nullsafety.2 [charcode collection path term_glyph]
- sqflite 1.3.1+1 [flutter sqflite_common path]
- sqflite_common 1.0.2+1 [synchronized path meta]
- stack_trace 1.10.0-nullsafety.1 [path]
- stream_channel 2.1.0-nullsafety.1 [async]
- string_scanner 1.1.0-nullsafety.1 [charcode source_span]
- synchronized 2.2.0+2
- term_glyph 1.2.0-nullsafety.1
- test_api 0.2.19-nullsafety.2 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timezone 0.5.9 [path]
- typed_data 1.3.0-nullsafety.3 [collection]
- url_launcher_linux 0.0.1+1 [flutter]
- url_launcher_macos 0.0.1+7 [flutter]
- url_launcher_platform_interface 1.0.8 [flutter meta plugin_platform_interface]
- url_launcher_web 0.1.3+1 [url_launcher_platform_interface platform_detect flutter flutter_web_plugins meta]
- uuid 2.2.2 [crypto convert]
- vector_math 2.1.0-nullsafety.3
- video_player_platform_interface 2.1.1 [flutter meta]
- video_player_web 0.1.3+2 [flutter flutter_web_plugins meta video_player_platform_interface]
- xdg_directories 0.1.0 [path process flutter]
- xml 4.2.0 [collection convert meta petitparser]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions