我在我的Flutter应用程序中使用shared_preferences
插件。从某个时刻(可能是Flutter升级后),它开始抛出异常:
E/flutter (27778): [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
E/flutter (27778): type '_InternalLinkedHashMap' is not a subtype of type 'Map<String, Object>' where
E/flutter (27778): _InternalLinkedHashMap is from dart:collection
E/flutter (27778): Map is from dart:core
E/flutter (27778): String is from dart:core
E/flutter (27778): Object is from dart:core
E/flutter (27778):
E/flutter (27778): #0 SharedPreferences.getInstance (package:shared_preferences/shared_preferences.dart)
E/flutter (27778): <asynchronous suspension>
E/flutter (27778): #1 loadFirstUse (**path**/lib/main.dart:29:53)
E/flutter (27778): <asynchronous suspension>
E/flutter (27778): #2 main (**path**/lib/main.dart:17:9)
E/flutter (27778): <asynchronous suspension>
E/flutter (27778): #3 _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:279:19)
E/flutter (27778): #4 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:165:12)
字符串
当我简单地尝试创建SharedPreferences的示例时,就会发生这种情况:
SharedPreferences prefs = await SharedPreferences.getInstance();
型
我试图找到问题的根源,但无法找到它。感谢您的任何帮助。
编辑:我正在使用shared_preferences: "^0.4.0"
7条答案
按热度按时间ajsxfq5m1#
我使用以下解决方法解决了这个问题:
字符串
kq0g1dla2#
要对此进行调试,请使用以下命令:
字符串
在我的例子中,错误是我想在调用
runApp()
之前调用await SharedPreferences.getInstance()
,所以错误消息给我的解决方案是按如下顺序排列我的代码:第一:
型
事后:
型
最后:
型
laximzn53#
我已经尝试了
shared_preferences: "0.2.4"
和上面建议的其他版本没有任何成功。最后得到它的工作后,改变Flutter通道从开发到测试版:字符串
至少这解决了这个问题,现在只是等待一个修复的共享偏好插件在开发频道。
gupuwyp24#
我把它改成了
shared_preferences: "0.3.3"
,很有可能它又坏了。new9mtju5#
你要这样利用Future
字符串
byqmnocz6#
我一个一个的删除了软件包,发现是
flutter_barcode_scanner
引起的,我把它升级到了2.0.0版本,它解决了我的问题。2vuwiymt7#
它之前工作正常,但现在我在调用SharedPreferences.getInstance()时收到无效格式异常;
为了解决这个问题,我尝试了所有的方法,但什么也没有work.so,最后我创建了一个新的项目,并粘贴了我以前所有的代码,这终于解决了这个问题