我已经研究这个问题将近半天了。我正在尝试使用Flutter的SharedPreferences包在应用程序的存储中存储密钥/值。当我通过SharedPreferences新建一个await SharedPreferences.getInstance()
时,它构建和运行正常,但是当应用程序到达该代码行时,它会崩溃,并出现以下错误:
MissingPluginException (MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences))
我找到了其他Stackoverflow帖子,但它们并没有帮助解决这个问题:
通过所有这些,我尝试了以下几点:
flutter pub get
io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin.registerWith(registry.registrarFor("io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"));
SharedPreferencesIOS.registerWith();
flutter clean && flutter pub get
SharedPreferences.setMockInitialValues({});
在运行/执行上述步骤之后,我重新启动了编辑器(VSC)。我甚至安装了带有颤振扩展的Android,并试用了它,结果失败了。我试着从命令行运行,但它仍然返回相同的错误。我试着重新启动我的电脑,卸载和重新安装颤振和飞镖,以供笑。现在我真的不知道该怎么办。我错过了什么步骤?
发布于 2022-10-17 07:55:41
在使用共享首选项之前,将其添加到代码中。
SharedPreferences.setMockInitialValues({});
这是因为如果你在没有任何东西的地方使用getAll,它就会变得疯狂。我不认为这与iOS有任何关系。如果您甚至使用普通的getString,内部程序将使用getAll,因此它仍然会崩溃。
您可以做些什么来解决这个问题,那就是把它放在一个try和catch语句中。在“尝试”中,调用sharedPreferences.get并捕获错误,然后执行setMockInitialValues。如果sharedPreferences.get没有给出一个错误,这意味着已经有数据我不确定。你能试试吗。
https://stackoverflow.com/questions/74093954
复制相似问题