Java Android计时器引发空指针异常

Java Android计时器引发空指针异常,java,android,timer,nullpointerexception,Java,Android,Timer,Nullpointerexception,我用安卓系统做了一个游戏,除了计时器,几乎所有的东西都可以用。每当我尝试运行游戏时,它都会抛出一个NPE。我试过几个不同的计时器,翻阅了大量的页面试图找到答案,但到目前为止运气不佳。我已经在下面发布了相关代码和日志 public class GameView extends View { private Paint redPaint, blackPaint; private Bitmap ball1; private String output = "Output wi

我用安卓系统做了一个游戏,除了计时器,几乎所有的东西都可以用。每当我尝试运行游戏时,它都会抛出一个NPE。我试过几个不同的计时器,翻阅了大量的页面试图找到答案,但到目前为止运气不佳。我已经在下面发布了相关代码和日志

public class GameView extends View {

    private Paint redPaint, blackPaint;
    private Bitmap ball1;
    private String output = "Output will appear here";
    private int ballX, ballY;
    private int radius = 50;
    private int count = 0;

    private int circleX = 350;
    private int circleY = 550;

     TextView tv;

        public GameView(Context context) {
            super(context);
            redPaint = new Paint();
            redPaint.setColor(Color.RED);
            blackPaint = new Paint();
            blackPaint.setColor(Color.BLACK);
            ball1 = BitmapFactory.decodeResource(getResources(), R.drawable.ball);
            tv = (TextView)findViewById(R.id.timer);

            new CountDownTimer(60000, 1000) {
                public void onTick(long millisUntilFinished) {
                    tv.setText("seconds remaining: " + millisUntilFinished / 1000);
                }
                public void onFinish() {
                    tv.setText("done!");
                }
            }.start();

        }
Logcat,错误在
tv.setText(“剩余秒数:+millisuntiltfinished/1000”)

游戏活动代码

public class GameActivity extends Activity {

    GameView GV;
    TextView tv;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);
        GV = new GameView(this);
        setContentView(GV);

        tv = (TextView)findViewById(R.id.timer);


        new CountDownTimer(60000, 1000) {
            public void onTick(long millisUntilFinished) {
                tv.setText("seconds remaining: " + millisUntilFinished / 1000);
            }
            public void onFinish() {
                tv.setText("done!");
            }
        }.start();

    }
文本视图为空

tv = (TextView)findViewById(R.id.timer);

将始终返回null,因为在
setContentView()
之前调用,我认为您在
onCreate()

中调用了该函数。什么类正在扩展GameView?它正在GameActivity中扩展,尝试在该类中执行计时器,但它不会覆盖GameView。公共类GameActivity扩展活动{GameView GV;@Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.Activity_game);GV=new GameView(this);setContentView(GV);}GameView是否扩展了视图?是的。我将编辑原始问题以包含代码的顶部部分。检查您的textview是否为空。我相信是的。谢谢,我该如何解决此问题?我尝试在setContentView之后将计时器和textview放入GameActivity中,但它仍然抛出错误。我将更新原始问题以包含GameActiv调用setcontentView()两次,第二次将覆盖版面中的所有内容,使电视再次为空
tv = (TextView)findViewById(R.id.timer);