I'm using the Gson library to save and retrieve an ArrayList of Players Objects.
My onStop()
@Override
protected void onStop() {
    super.onStop();
    SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    Gson gson = new Gson();
    String guardJSON = gson.toJson(playersNoGuard);
    editor.putString(GUARD, guardJSON);
    editor.putString("lastActivity", getClass().getName());
    editor.apply();
}
My onCreate important part
ArrayList<Player> playersNoGuard;
RecyclerView myList;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_players_guard);
    SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
    String guardJSON = prefs.getString(GUARD, null);
    Type arrayListPlayers = new TypeToken<ArrayList<Player>>(){}.getType();
    Gson gson = new Gson();
    if(guardJSON != null) {
        playersNoGuard = gson.fromJson(guardJSON, arrayListPlayers);
    }
    // Get the players and remove the Clairvoyant
    Intent intent = this.getIntent();
    playersNoGuard = intent.getParcelableArrayListExtra("PLAYERS");
    [...] // Code skipped
    }
But when this Activity is run, I get the following error log:
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
What's wrong in this code?
 
     
     
    