#flutter
#трепетать
Вопрос:
Когда я получаю значение от flutter(версия 2.5.x) безопасное хранилище(версия 5.0.2), как это:
static Futurelt;boolgt; isLoggedIn() async { String? username = await SecureStorageUtil.getString("username"); if (username == null) { return false; } else { return true; } }
показывает такую ошибку:
E/flutter ( 2869): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: PlatformException(Exception encountered, read, java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.content.SharedPreferences.contains(java.lang.String)' on a null object reference E/flutter ( 2869): at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin$MethodRunner.run(FlutterSecureStoragePlugin.java:298) E/flutter ( 2869): at android.os.Handler.handleCallback(Handler.java:938) E/flutter ( 2869): at android.os.Handler.dispatchMessage(Handler.java:99) E/flutter ( 2869): at android.os.Looper.loop(Looper.java:223) E/flutter ( 2869): at android.os.HandlerThread.run(HandlerThread.java:67) E/flutter ( 2869): , null) E/flutter ( 2869): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607:7) E/flutter ( 2869): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:18) E/flutter ( 2869): lt;asynchronous suspensiongt; E/flutter ( 2869): #2 Auth.isLoggedIn (package:wheel/src/biz/auth.dart:27:24) E/flutter ( 2869): lt;asynchronous suspensiongt; E/flutter ( 2869): #3 _SettingsPageState._buildBody.lt;anonymous closuregt;.lt;anonymous closuregt; (package:reddwarf_dict/pages/settings/settings.dart:48:34) E/flutter ( 2869): lt;asynchronous suspensiongt;
что мне следует сделать, чтобы устранить эту проблему? это и есть SecureStorageUtil.getString
функция:
static FlutterSecureStorage _preferences = FlutterSecureStorage(); static Futurelt;String?gt; getString (String key, {String defValue = ''}) { return _preferences.read(key:key) ; }
Ответ №1:
У меня была та же проблема. Решение для меня состояло в том, чтобы очистить хранилище для приложения.
Настройки -gt; Приложения -gt;gt; Ваше приложение -gt;gt;gt; Хранилище -gt;gt;gt;gt; Очистить хранилище
Другой вариант- deleteAll()
метод из хранилища flutter
Комментарии:
1. это работает, спасибо. @Maikzen