Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. #8

Closed
timosturm opened this issue Jul 23, 2020 · 2 comments

Comments

@timosturm
Copy link

This error occurs when running the example app:

Running Gradle task 'assembleDebug'...
✓ Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...
E/flutter (18643): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.
E/flutter (18643): If you're running an application and need to access the binary messenger before `runApp()` has been called (for example, during plugin initialization), then you need to explicitly call the `WidgetsFlutterBinding.ensureInitialized()` first.
E/flutter (18643): If you're running a test, you can call the `TestWidgetsFlutterBinding.ensureInitialized()` as the first line in your test's `main()` method to initialize the binding.
E/flutter (18643): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7)
E/flutter (18643): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4)
E/flutter (18643): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62)
E/flutter (18643): #3      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:146:35)
E/flutter (18643): #4      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:329:12)
E/flutter (18643): #5      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:356:48)
E/flutter (18643): #6      MethodChannelSharedPreferencesStore.getAll (package:shared_preferences_platform_interface/method_channel_shared_preferences.dart:54:22)
E/flutter (18643): #7      SharedPreferences._getSharedPreferencesMap (package:shared_preferences/shared_preferences.dart:187:57)
E/flutter (18643): #8      SharedPreferences.getInstance (package:shared_preferences/shared_preferences.dart:54:19)
E/flutter (18643): #9      debugObtainSharedPreferencesInstance (package:streaming_shared_preferences/src/streaming_shared_preferences.dart:300:23)
E/flutter (18643): #10     debugObtainSharedPreferencesInstance (package:streaming_shared_preferences/src/streaming_shared_preferences.dart:299:27)
E/flutter (18643): #11     StreamingSharedPreferences.instance (package:streaming_shared_preferences/src/streaming_shared_preferences.dart:40:7)
E/flutter (18643): #12     main (package:privacyidea_authenticator/testPref.dart:25:56)
E/flutter (18643): #13     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:241:25)
E/flutter (18643): #14     _rootRun (dart:async/zone.dart:1184:13)
E/flutter (18643): #15     _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (18643): #16     _runZoned (dart:async/zone.dart:1619:10)
E/flutter (18643): #17     runZonedGuarded (dart:async/zone.dart:1608:12)
E/flutter (18643): #18     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:233:5)
E/flutter (18643): #19     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:301:19)
E/flutter (18643): #20     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

To prevent this, the main method should be changed to:

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  /// Obtain instance to streaming shared preferences, create MyAppSettings, and
  /// once that's done, run the app.
  final preferences = await StreamingSharedPreferences.instance;
  final settings = MyAppSettings(preferences);

  runApp(MyApp(settings));
}

This should be mentioned in the documentation of this plugin also.

@mapgoblin
Copy link
Contributor

Just hit the exact same problem. Will try to do an update and Pull Request.

@roughike
Copy link
Owner

Fixed by #10.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants