Prefab not working

i’m making 2D mobile game which is almost done but the only thing that prevents me from publishing it that prefab is not changing the image when i run the build on android device but in the Unity editor everything works like it should. Maybe someone could explain me what’s the cause of this ?

Here is the code:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class playerchange1 : MonoBehaviour {

public Sprite img1;
public GameObject player;
private DimondManager DM;
private collectDimonds CD;
public  bool isBought = false;
public GameObject Button;

void SetSprite()
{
	player.GetComponent<Image> ().sprite = img1;
}

public void onClick () 
{
	if (dimantuManager.dimonds >= 20 && isBought == false) {
		 SetSprite();
		Button.GetComponent<Image> ().sprite = img1;
		PlayerPrefs.SetInt ("Dimanti", + dimantuManager.dimonds - 20);
		isBought = true;
		Application.LoadLevel (Random.Range (0, 0));

	} 
	else if (isBought == true) {

		SetSprite();
		Application.LoadLevel (Random.Range (0, 0));
	}
}

}

The public gameobject player - is the prefab that is not changing the image when player clicks on the button which is also happening to the button prefab

Is there any code missing?
Need to grab the references to your DimondManager and collectDimonds scripts ie:

void Start(){
DM = GetComponent<DimondManager>();
CD = GetComponent<collectDimonds>();      //Not sure why this is needed??
}

It also looks like dimantuManager is a different version of some kind of DimondManager?

public Sprite img1;
public GameObject player;
private DimondManager DM;
private collectDimonds CD;
public  bool isBought = false;
public GameObject Button;


sprite playerSprite;
sprite buttonSprite;

void Start(){
	DM = GetComponent<DimondManager>();
	CD = GetComponent<collectDimonds>();      //Not sure why this is needed??

	playerSprite = player.GetComponent<Image>().sprite;
	buttonSprite = Button.GetComponent<Image>().sprite;
}

void SetSprite(){
	playerSprite = img1;
}

public void onClick(){
	if (dimantuManager.dimonds >= 20 && isBought == false){				//Where does dimantuManager come from?
		SetSprite();
		buttonSprite = img1;
		PlayerPrefs.SetInt ("Dimanti", + dimantuManager.dimonds - 20);
		isBought = true;
		Application.LoadLevel (Random.Range (0, 0));
	} 
	else if (isBought == true) {
		SetSprite();
		Application.LoadLevel (Random.Range (0, 0));
	}
}