Get component from another game object won't work!

I was trying to get an int from gameobject B’s script A to show it on gameobject A’s text component through a script. Here’s my code of gameobject B’s Script.

using UnityEngine;
using System.Collections;

public class Space : MonoBehaviour {
	
	public float tap = 0f;
	
	void Start ()
	{

	}
	
	
	void Update ()
	{
		
		if (Input.GetKeyDown (KeyCode.Space)) {
			tap ++;
		}
	}
}

And this is the Script on gameobject A’s text component adjusting script

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

public class text : MonoBehaviour {
	
	Text uitext;
	
	public GameObject otherGameObject;
	
	private Space space;
	
	// Use this for initialization
	void Awake () {
		//text
		uitext = GetComponent<Text>();
		//taps
		space = otherGameObject.GetComponent<Space>();
	}
	void Start () {
		uitext.text = "no. of taps: " + space.tap);
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

otherGameObject is assigned to gameobject B

Anyone knows now to fix this?

I get this when I start the game, it runs but won’t work
NullReferenceException: Object reference not set to an instance of an object
text.Start () (at Assets/text.cs:21)

Don’t try to access other gameobject’s components in Awake(), because they themselves might not have woken up yet. Set up stuff specific to this component in Awake(), and only try to access other gameobects/components in Start().