android 2048 分数显示问题 调用MainActivity中的Show函数程序崩溃

public class MainActivity extends AppCompatActivity {
private static MainActivity mainactivity = null;
public static int Score = 0;
public TextView text;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    text = (TextView)findViewById(R.id.tvScore);
    text.setText("333333333333333333333333333");

}

public MainActivity() {
    mainactivity = this;
}

public static MainActivity getMainActivity() {
    return mainactivity;
}


public void show() {
    text.setText(Score+"");
}
public void clearScore(){
    Score = 0;
    show();
}
public void addScore(int s){
    Score+=s;
    show();
}

}
在GameView中调用clearScore()初始化程序会崩溃去掉MainActivity.getMainActivity().clearScore(); 可以运行但是分数无法显示
private void startGame() {
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 4; x++) {
cardsMap[x][y].setNum(0);
}
}
MainActivity.getMainActivity().clearScore();
addRandomNum(); // 开始时先有两个方格有数字
addRandomNum();
}
总之就是调用涉及到分数显示Show()函数的时候 程序崩溃
![![图片说明](https://img-ask.csdn.net/upload/201707/13/1499948382_143023.png)图片说明](https://img-ask.csdn.net/upload/201707/13/1499948377_746397.png)图片说明

看你这个错误是不是因为在线程里面去更新UI了?先这样改下,不行,完整的错误贴出来看下
public void show() {
runOnUiThread(new Runnable() {
@Override
public void run() {
text.setText(Score+"");
}
});
}

程序没加载完,猜测是你的startGame方法没有放在onFinishInflate中调用。onFinishInflate:自定义控件布局初始化完成后自动调用的方法,不是在该方法内,你的activity可能获取到的是空值,activity没初始化完成,你就调用了,这样的话不太合理。最好贴一下完整错误吧,最重要是错误的第一行。