【发布时间】:2021-10-22 20:29:13
【问题描述】:
我是 Flutter 的新手,还在学习。我正在尝试获取 SharedPreferences 实例的引用,但出现以下错误
_CastError(用于空值的空检查运算符)
这就是我的代码的样子
app_settings.dart
class AppSettings {
final SharedPreferences _pref;
AppSettings._(this._pref);
static AppSettings? _instance;
static initialize() async {
if (_instance != null) {
// already initialized
return;
}
// instance not found. creating one
var pref = await SharedPreferences.getInstance();
_instance = AppSettings._(pref);
}
}
main.dart
Future<void> main() async {
// initializing application settings
await AppSettings.initialize();
runApp(App());
}
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "hello app",
home: AppHome());
}
}
经过进一步调试,我发现异常是由 invokeMapMethod in
引发的flutter-sdk/flutter/packages/flutter/lib/src/services/platform_channel.dart
由getAll方法调用
flutter-sdk/flutter/.pub-cache/hosted/pub.dartlang.org/shared_preferences_platform_interface-2.0.0/lib/method_channel_shared_preferences.dart
以下是错误截图
【问题讨论】:
-
你用的是哪个版本的flutter和shared_preferences?
-
Flutter 2.2.3,shared_preferences:^2.0.6 和 dart 2.13.4