Исключение PlatformException(Обнаруженное исключение, чтение, java.lang.Исключение NullPointerException при использовании защищенного хранилища flutter

#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