这个问题我已经研究了将近半天了。我尝试使用Flutter的SharedPreferences包在应用存储中存储键/值。当我通过await SharedPreferences.getInstance()
新建一个SharedPreferences时,它可以正常构建和运行,但是当应用到达那行代码时,它崩溃了,并出现以下错误:MissingPluginException (MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences))
我已经找到了其他Stackoverflow职位,但他们并没有帮助解决这个问题:
- MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences) while getting FCM in background
- Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/ for many packages on Flutter
- Flutter Test: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
- Flutter MissingPluginException(No implementation found for method getAll on channel ...) in release app
- Unhandled Exception: MissingPluginException(No implementation found for method flutterToWatch on channel it.example.watch)
- Flutter: Unhandled exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
- https://github.com/flutter/flutter/issues/98473
通过所有这些,我尝试了以下几点:
flutter pub get
io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin.registerWith(registry.registrarFor("io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"));
- 由于我使用的是iOS:
SharedPreferencesIOS.registerWith();
- https://pub.dev/packages/flutter_isolate
flutter clean && flutter pub get
SharedPreferences.setMockInitialValues({});
在运行/完成上述步骤后,我重新启动了我的编辑器(VSC)。我甚至安装了带有Flutter扩展的Android Studio并试用了它,但它不起作用。我尝试从命令行运行,但它仍然返回相同的错误。我尝试重新启动我的计算机并卸载和重新安装flutter和dart以获得笑声。我真的不知道在这一点上该怎么做。我错过了哪些步骤?
2条答案
按热度按时间aij0ehis1#
在使用共享首选项之前,请将其添加到代码中。
因为如果你在什么都没有的地方使用getAll,它会发疯的,我觉得这和iOS没有关系,即使你使用正常的getString,内部程序使用getAll,它还是会崩溃。
你能做的就是把它放在一个try和catch语句中。在try中,调用sharedpreferences.get并捕捉错误,然后执行setMockInitialValues。如果sharedpreferences.get没有给予错误,这意味着已经有数据了,我不确定。你能试试吗?
roejwanj2#
我是这么做的