Sprite not changing on android.

Ok, so I have a script that changes the sprite of the player when the user clicks a button. On PC, if the user clicks the button, the sprite changes In-Game, but on Android the sprite remains the default one.

Here is the script I use:

using UnityEngine;
using System.Collections;

public class Shop : MonoBehaviour {

	int catPrice = 10;
	public Sprite defaultSprite;
	public Sprite catSprite;
	public GameObject Player;
	int moneyz;
	public bool hasBeenPressed;
	public SpriteRenderer spriteRenderer; 
	
	void Start () 
	{
		moneyz = PlayerPrefs.GetInt("Score");
		spriteRenderer = Player.GetComponent<SpriteRenderer>();

		int state = PlayerPrefs.GetInt("hasBeenPressed", 0);
		
		if (state == 1)
			hasBeenPressed = true;
		else
			hasBeenPressed = false;
	}

	public bool IsCatBought()
	{
		return hasBeenPressed;
	}


	void OnGUI()
	{

		if(!hasBeenPressed)
		{
			if(GUI.Button (new Rect(Screen.width / 2 - 30, 50, 90, 30), "Buy Cat Player."))
			{
				if(PlayerPrefs.GetInt("Score", moneyz) < 10)
				{
					GUI.Label (new Rect(Screen.width / 2 - 40, 250, 100, 30), "Not enought moneyz");
				}
				else
				{
					PlayerPrefs.SetInt("Score", moneyz - catPrice);
					Player.GetComponent<SpriteRenderer>().sprite = catSprite;
					hasBeenPressed = true;
					PlayerPrefs.SetInt("hasBeenPressed", 1);
				}
			}
		}

		if(PlayerPrefs.GetInt("hasBeenPressed") == 1)
		{
			if(GUI.Button (new Rect(Screen.width / 2 - 30, 250, 90, 30), "Cat Player."))
			{
				Player.GetComponent<SpriteRenderer>().sprite = catSprite;
			}
		}

		if(GUI.Button (new Rect(Screen.width / 2 - 40, 100, 100, 30), "Game"))
		{
			Application.LoadLevel(1);
		}

		if(GUI.Button (new Rect(Screen.width / 2 - 40, 150, 100, 30), "Back to Menu"))
		{
			Application.LoadLevel(0);
		}

		if(GUI.Button (new Rect(Screen.width / 2 - 40, 200, 100, 30), "Default Player."))
		{
			Player.GetComponent<SpriteRenderer>().sprite = defaultSprite;
		}
	}
}

Have you found the solution for this?