============问题描述============
//每次画面改变的时候调用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看看输出的结果空指针
原文:http://www.cnblogs.com/lmyangbk/p/4035767.html