Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Restore error message explaining the need to call WidgetsFlutterBinding.ensureInitialized() #78028

Closed
@lukepighetti

Description

@lukepighetti

When using shared_preferences: ^2.0.4, when calling SharedPreferences.getInstance() I get a null check exception.

Fails on

  • macOS
  • iOS
  • Android

Succeeds on

  • Web

Flutter version & devices

Flutter 2.1.0-10.0.pre • channel dev • https://github.com/flutter/flutter.git
Framework • revision cc9b78fc5c (2 weeks ago) • 2021-02-25 13:26:03 -0800
Engine • revision a252ec09b7
Tools • Dart 2.13.0 (build 2.13.0-77.0.dev)

SM S102DL (mobile)     • RF8N737S2CR                              • android-arm    • Android 10 (API 29)
Luke's iPhone (mobile) • 0bc0c4864d8e08aac4456893cded68bf0b6767d5 • ios            • iOS 14.4
macOS (desktop)        • macos                                    • darwin-x64     • macOS 11.2.1 20D74 darwin-x64
Chrome (web)           • chrome                                   • web-javascript • Google Chrome 89.0.4389.82

MCVE

name: shared_preferences_macos_issue
description: A new Flutter project.
publish_to: "none"
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  shared_preferences: ^2.0.4

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  final prefs = await SharedPreferences.getInstance();

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: Center(
          child: Text('shared_preferences error'),
        ),
      ),
    );
  }
}
[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: Null check operator used on a null value
#0      MethodChannel.binaryMessenger
package:flutter/…/services/platform_channel.dart:142
#1      MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:148
#2      MethodChannel.invokeMethod
package:flutter/…/services/platform_channel.dart:331
#3      MethodChannel.invokeMapMethod
package:flutter/…/services/platform_channel.dart:358
#4      MethodChannelSharedPreferencesStore.getAll
package:shared_preferences_platform_interface/method_channel_shared_preferences.dart:44
#5      SharedPreferences._getSharedPreferencesMap
package:shared_preferences/shared_preferences.dart:181
#6      SharedPreferences.getInstance
package:shared_preferences/shared_preferences.dart:57
#7      main
package:shared_preferences_macos_issue/main.dart:5
#8      _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:146:25)
#9      _rootRun (dart:async/zone.dart:1354:13)
#10     _CustomZone.run (dart:async/zone.dart:1258:19)
#11     _runZoned (dart:async/zone.dart:1789:10)
#12     runZonedGuarded (dart:async/zone.dart:1777:12)
#13     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:139:5)
#14     _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:283:19)
#15     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: regressionIt was better in the past than it is nowfound in release: 2.1Found to occur in 2.1frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onpackageflutter/packages repository. See also p: labels.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions