easy_localization icon indicating copy to clipboard operation
easy_localization copied to clipboard

await EasyLocalization.ensureInitialized() is crashing on android emulator

Open mostafaAbdelazim opened this issue 4 years ago • 3 comments

I'm failing to use easy_localization in my project, it's failing to run the app (stuck in the splash screen), also tried it in a freshly created project and getting the same result.

steps to reproduce

  1. flutter create
  2. add easy_localization: ^3.0.0 to pubspec.yaml
  3. add await EasyLocalization.ensureInitialized(); to main function
  4. run on android emulator version S

Logs:

Launching lib/main.dart on sdk gphone64 arm64 in debug mode...
Running Gradle task 'assembleDebug'...
✓  Built build/app/outputs/flutter-apk/app-debug.apk.
Debug service listening on ws://127.0.0.1:64640/5psLffX51yQ=/ws
Syncing files to device sdk gphone64 arm64...
E/flutter (16187): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Null check operator used on a null value
E/flutter (16187): #0      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:142:86)
E/flutter (16187): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:148:36)
E/flutter (16187): #2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:331:12)
E/flutter (16187): #3      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:358:49)
E/flutter (16187): #4      MethodChannelSharedPreferencesStore.getAll (package:shared_preferences_platform_interface/method_channel_shared_preferences.dart:44:25)
E/flutter (16187): #5      SharedPreferences._getSharedPreferencesMap (package:shared_preferences/shared_preferences.dart:187:57)
E/flutter (16187): #6      SharedPreferences.getInstance (package:shared_preferences/shared_preferences.dart:56:19)
E/flutter (16187): #7      EasyLocalizationController.initEasyLocation (package:easy_localization/src/easy_localization_controller.dart:119:50)
E/flutter (16187): #8      EasyLocalization.ensureInitialized (package:easy_localization/src/easy_localization_app.dart:106:34)
E/flutter (16187): #9      main (package:test/main.dart:5:26)
E/flutter (16187): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:142:25)
E/flutter (16187): #11     _rootRun (dart:async/zone.dart:1354:13)
E/flutter (16187): #12     _CustomZone.run (dart:async/zone.dart:1258:19)
E/flutter (16187): #13     _runZoned (dart:async/zone.dart:1789:10)
E/flutter (16187): #14     runZonedGuarded (dart:async/zone.dart:1777:12)
E/flutter (16187): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:138:5)
E/flutter (16187): #16     _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:283:19)
E/flutter (16187): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
E/flutter (16187): 

flutter doctor:

doctor --verbose
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.5.2 20G95 darwin-arm, locale en-EG)
    • Flutter version 2.2.3 at /Users/mostafaabdelazim/flutter
    • Framework revision f4abaa0735 (8 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

environment: macOS Big sur 11.5.2 M1 Android studio Arctic fox Android emulator API S

mostafaAbdelazim avatar Aug 25 '21 13:08 mostafaAbdelazim

At me, then crashes, when I build an appbundle and upload to PlayStore and install and run from there.

fehernyul avatar Sep 02 '21 13:09 fehernyul

Same error always crashes my app when trying to run it on my Android phone. Works great in Chrome though - and apparently the error has something to do with the SharedPreferences.

davidjan3 avatar Oct 09 '21 22:10 davidjan3

Calling WidgetsFlutterBinding.ensureInitialized(); before anything else as in the new example code solves the issue :)

davidjan3 avatar Oct 09 '21 22:10 davidjan3

Still have this problem in 2023, it works fine on windows but crash on Android at this line WidgetsFlutterBinding.ensureInitialized(); I use the exact same code on pub.dev in example

And96 avatar Sep 14 '23 17:09 And96

Fixed forcing manually locale variable in shared pref to en or another language

App crash because language is null, in shared pref `
SharedPreferences prefs = await SharedPreferences.getInstance();

await prefs.setString("locale", "en");

await WidgetsFlutterBinding.ensureInitialized();

`

And96 avatar Sep 14 '23 18:09 And96