String jsonPreferences = sharedPref.getString(key, null);
Это проблемная линия.Второй параметр (где вы передаете null
) - это параметр "def", т. Е. То, что возвращается getString()
, если не сохранено предпочтение, соответствующее указанному ключу.
Поскольку предпочтение может не бытьбыть установленным, возможно, что jsonPreferences
будет нулевым (как здесь).Это означает, что
List<Information> contactList = gson.fromJson(jsonPreferences, type);
потерпит неудачу, так как вы не можете создать какой-либо объект из нулевой ссылки;Gson пытается разобрать пустую строку.
Вы должны добавить нулевую проверку ниже своего jsonPreferences
назначения:
String jsonPreferences = sharedPref.getString(key, null);
if (jsonPreferences == null || jsonPreferences.isEmpty()) return new ArrayList<Information>(); //return an empty list if there's no data; also checking for an empty String