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