JSON을 사용하여 임베디스보드에 모터, 카메라가 달린 감시로봇을 제어하는 앱을 만들고 있습니다.
영상을 받아올 예정이라 스레드로 구현하고있는데 잘 안되네요...

AVD에서는 문제없이 스레드도 잘 돌고 종료하면 잘 멈추고 통신도 잘됩니다....
그런데... 핸드폰(베가레이서)에 올리니까 말썽을 부리더군요....
멘탈이 부셔질거 같습니다...ㅠㅠㅠ 멋진 고수님들 도와주세요!

11-24 02:17:09.015: E/SurfaceHolder(7324): Exception locking surface
11-24 02:17:09.015: E/SurfaceHolder(7324): java.lang.IllegalArgumentException
11-24 02:17:09.015: E/SurfaceHolder(7324): at android.view.Surface.lockCanvasNative(Native Method)
11-24 02:17:09.015: E/SurfaceHolder(7324): at android.view.Surface.lockCanvas(Surface.java:76)
11-24 02:17:09.015: E/SurfaceHolder(7324): at android.view.SurfaceView$4.internalLockCanvas(SurfaceView.java:762)
11-24 02:17:09.015: E/SurfaceHolder(7324): at android.view.SurfaceView$4.lockCanvas(SurfaceView.java:742)
11-24 02:17:09.015: E/SurfaceHolder(7324): at ProjectGo.demo.test.ControlView$ControlViewThread.run(ControlView.java:101)
11-24 02:17:09.015: W/dalvikvm(7324): threadid=12: thread exiting with uncaught exception (group=0x40d031f8)
11-24 02:17:09.015: E/AndroidRuntime(7324): FATAL EXCEPTION: Thread-970
11-24 02:17:09.015: E/AndroidRuntime(7324): java.lang.NullPointerException
11-24 02:17:09.015: E/AndroidRuntime(7324): at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:393)
11-24 02:17:09.015: E/AndroidRuntime(7324): at ProjectGo.demo.test.ControlView$ControlViewThread.doDrow(ControlView.java:118)
11-24 02:17:09.015: E/AndroidRuntime(7324): at ProjectGo.demo.test.ControlView$ControlViewThread.run(ControlView.java:103)


class ControlViewThread extends Thread {
...
public void run() {
Canvas canvas = null;
while (mRun) {
try {
canvas = mSurfaceHolder.lockCanvas();
synchronized (mSurfaceHolder) {
doDrow(canvas); //<-여기가 103번 라인입니다. 버튼을 그려주는 부분인데... 잘 안되더군요;;
sleep(10);
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (canvas != null) {
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
}

private void doDrow(Canvas canvas) {
// TODO Auto-generated method stub
button[btn_up].draw(canvas); // <-여기가 118번 라인 입니다.
button[btn_dwn].draw(canvas);
button[btn_left].draw(canvas);
button[btn_right].draw(canvas);
button[btn_stop].draw(canvas);
button[btn_plus].draw(canvas);
button[btn_min].draw(canvas);
}
...
}