Scriptable objects become volatile on android

Hi there,
I wanted to use a class to hold some player properties like current level,name etc.So i made a class which extends scriptableObject .The data stays fine in editor but when i test it on an android device(close the game and reopen it) it resets to default values. The code is as follows

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;



[CreateAssetMenu()]
[Serializable]
public class PlayerData : ScriptableObject {

    [SerializeField]
    public string playerName = "Player";
    [SerializeField]
    public int currentLevel;
    [SerializeField]
    public int hints=0;

	
}

The fact that the class is ‘Serializable’ means literally that - it can be serialized into some simple binary representation. That doesn’t say anything about what you do with that serialization.

The Unity editor does the work of utilising serialization to persist the serializable object. The built product on Android doesn’t - you have to actually go ahead and save/load your serialization to/from a file.