我在getHandler上遇到了nullPointerException,我无法解决这个问题..
你能帮帮我吗?我不知道bug在哪里......错误在同样的情况下随机发生。一些代码......
final Handler mHandler = new Handler();
new Thread(new Runnable() {
public void run() {
while (mProgressStatus < 100) {
mProgressStatus = Elabora();
mHandler.post(new Runnable() {
public void run() {
progressBar1.setProgress((int) mProgressStatus);
}
});
}
if(isStopped)
{
op_ko.show();
//error in the next line
txt_status1.getHandler().post(new Runnable() {
public void run() {
txt_status1.setText(R.string.op_ko);
}
});
}
else
{
op_ok.show();
txt_status1.getHandler().post(new Runnable() {
public void run() {
txt_status1.setText(R.string.op_ok);
}
});
}
btn_stop.getHandler().post(new Runnable() {
public void run() {
btn_stop.setVisibility(View.INVISIBLE);
}
});
}
答案 0 :(得分:0)
其中有很多变量可能为null,请尝试使用调试来确定它是哪一行(即读取logcat或在Java Exception Breakpoint
上使用NullPointerException
重新运行)。
如果错误发生或没有“随机”发生,通常的一个陷阱是在活动的onCreate之外初始化成员变量(mHandler ......但也可能是txt_status1,progressBar1,btn_stop等?)。如果Android初始化方向更改,或者因任何其他原因随机决定终止并重新创建您的活动,那么您将失去状态,并且所有这些成员变量都将为空。