首页 > 代码库 > 空指针

空指针

============问题描述============


//每次画面改变的时候调用ondraw方法
protected void Ondraw(Canvas canvas){



}

private class DrawThread implements Runnable{

private boolean mRun = true;
@Override
public void run() {
// TODO Auto-generated method stub
while(mRun){
Canvas canvas = Holder.lockCanvas();
Ondraw(canvas);
Holder.unlockCanvasAndPost(canvas);
}
}

Ondraw(canvas);这里报错误空指针,怎么解决!

============解决方案1============


debug看一下就知道canvas是否有值了

============解决方案2============


子线程不允许操作UI吧。

============解决方案3============


1.ondraw 不能主动调用的。
2.重绘请调用 View.invalidate();

============解决方案4============


Canvas canvas = Holder.lockCanvas(); 这个holder是不是没有获取到,从上层的SurfaceView里面

============解决方案5============


 log看看输出的结果

空指针