I am unable to understand this stack trace and why it arising. From what I can understand it is something to do with firebase messaging.
E/AndroidRuntime(26033): java.lang.AssertionError
E/AndroidRuntime(26033): at io.flutter.plugins.firebase.messaging.FlutterFirebasePermissionManager.onRequestPermissionsResult(FlutterFirebasePermissionManager.java:33)
E/AndroidRuntime(26033): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:777)
E/AndroidRuntime(26033): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:409)
E/AndroidRuntime(26033): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onRequestPermissionsResult(FlutterActivityAndFragmentDelegate.java:752)
E/AndroidRuntime(26033): at io.flutter.embedding.android.FlutterActivity.onRequestPermissionsResult(FlutterActivity.java:748)
E/AndroidRuntime(26033): at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:8421)
E/AndroidRuntime(26033): at android.app.Activity.dispatchActivityResult(Activity.java:8266)
E/AndroidRuntime(26033): at android.app.ActivityThread.deliverResults(ActivityThread.java:4931)
E/AndroidRuntime(26033): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4979)
E/AndroidRuntime(26033): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
E/AndroidRuntime(26033): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(26033): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(26033): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044)
E/AndroidRuntime(26033): at android.os.Handler.dispatchMessage(Handler.java:107)
E/AndroidRuntime(26033): at android.os.Looper.loop(Looper.java:223)
E/AndroidRuntime(26033): at android.app.ActivityThread.main(ActivityThread.java:7562)
E/AndroidRuntime(26033): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(26033): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
E/AndroidRuntime(26033): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
I/Process (26033): Sending signal. PID: 26033 SIG: 9
Lost connection to device.
But as per documentation, my pre configuration for handling permission for both firebase and notification are correct.
This is what my main looks like,
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
FirebaseMessaging messaging = FirebaseMessaging.instance;
NotificationSettings settings = await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
print('User granted permission: ${settings.authorizationStatus}');
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
alert: true, badge: true, sound: true);
DatabaseBinding().dependencies();
runApp(MyApp());
}
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
}
And below I am handling permissions in during my policy screen,
Map<Permission, PermissionStatus> statuses = await [
Permission.storage,
Permission.notification,
Permission.camera
].request();
if (!statuses.containsValue(PermissionStatus.denied)) {
showGeneralDialog(
context: context,
useRootNavigator: false,......so_on
Please let me know, what exactly the stack trace says and if I am missing something please do explain.