Java 当我尝试设置TextView时,应用程序崩溃

Java 当我尝试设置TextView时,应用程序崩溃,java,android,Java,Android,我有一个我命名的课程记分板,看起来像这样: public class Scoreboard { private int mScore = 0; private int mHighScore = 0; public void addPoint() { mScore += 1; } public int getHighScore() { return mHighScore; } public void setHighScore(int highScore) { mHig

我有一个我命名的课程记分板,看起来像这样:

public class Scoreboard {
private int mScore = 0;
private int mHighScore = 0;

public void addPoint() {
    mScore += 1;
}

public int getHighScore() {
    return mHighScore;
}

public void setHighScore(int highScore) {
    mHighScore = highScore;
}

public int getScore() {
    return mScore;
}

public void setScore(int score) {
    mScore = score;
}

}
我的Activity中有一段代码,每当用户将球穿过矩形的间隙并相应地更改TextView以向用户显示分数时,它都会操纵这个类:

//Keeps track of score
            if (rectWhite1.getTheRight() > Math.round(mBallPos.x) - 5 && rectWhite1.getTheRight() < Math.round(mBallPos.x) + 5) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mScoreboard.addPoint();
                        scoreTextView.setText(mScoreboard.getScore());

                    }
                });
                Log.d(TAG, "If statement has been run3333!!!");
            }

            if (rectWhite2.getTheRight() > Math.round(mBallPos.x) - 5 && rectWhite2.getTheRight() < Math.round(mBallPos.x) + 5) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mScoreboard.addPoint();
                        scoreTextView.setText(mScoreboard.getScore());
                    }
                });

                Log.d(TAG, "If statement has been run2222!!!");
            }

            if (rectWhite3.getTheRight() > Math.round(mBallPos.x) - 5 && rectWhite3.getTheRight() < Math.round(mBallPos.x) + 5) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mScoreboard.addPoint();
                        scoreTextView.setText(mScoreboard.getScore());
                    }
                });

                Log.d(TAG, "If statement has been run1111!!!");
            }
//记录分数
if(rectwite1.getTheRight()>Math.round(mBallPos.x)-5&&rectwite1.getTheRight()Math.round(mBallPos.x)-5&&rectwite2.getTheRight()Math.round(mBallPos.x)-5&&rectwite3.getTheRight()

每次我运行应用程序时,每当我尝试使用与我创建的Scoreboard类相关的任何方法时,它都会崩溃。当我尝试添加一个点时,它会崩溃,当我尝试获取当前分数时,它会崩溃,等等。所以我的问题是如何避免这种情况发生并动态更改分数?

我想这取决于logcat崩溃时的输出。但是我会确保你已经正确初始化了mScoreboard,我还没有初始化mScoreboard……我试着将它设置为null,但是没有用,那就是你的问题。您需要类似于
Scoreboard mScoreBoard=newscoreboard()的东西
否则您试图在
空对象上执行操作
@codeMagic好的,我像您说的那样初始化了mScoreboard,我的应用程序仍然崩溃……可能是我正在向setText方法传递一个整数,还是我正在UI线程上运行?是的,这肯定会成功。看这里