SharedPreferencesにnullが入った配列を保存しようとするとエラーになる

image
この記事は情報が古いです

困ったこと

配列を使って値を管理していたのですが、値を保存するところでアプリが落ちてしまいました。
どこが原因なのかデバックモードで調べたら、どうやらこの文のところでエラーになっているみたいです。

  prefs.setStringList('posterPathList', posterPathList);

posterPathListというString型の配列をSharedPreferencesに保存しようとしています。

原因

posterPathListにnullが入っていたからです。
配列にnullを入れること自体は問題ないのですが、それをSharedPreferencesに保存することはできないみたいです。

解決策

  posterPathList.add(rev.posterPath);

↑posterPathListに値を追加するコード。これを↓のように変えます。

  posterPathList.add(rev.posterPath.toString());

このようにするとうまくいきました。
ただし、文字列のnullとして保存されてしまうので、その点にはご留意ください。