0
私はほとんどの場合うまく動作しているゲームアプリを持っています。ゲーム中に電話がかかってきたら(そして私は現在画面に触れていません)、ゲームは次のonPauseとonResumeに対処しています。私が期待していた通りです。しかし、コールが到着した瞬間に画面に触れると、プログラムがクラッシュします。 Logcatは、synchronized (micks_thread_thing.getSurfaceHolder())
という行にNullPointerException
を報告します。私は時々getSurfaceHolderが失敗することがあると推測しますが、私はエラーを避けるためにコードを違った方法で書くことができないかどうかはわかりません。画面に触れているときに電話がかかってきたらクラッシュします
public boolean onTouchEvent(MotionEvent event)
{
super.onTouchEvent(event); // not sure if I need this
synchronized (micks_thread_thing.getSurfaceHolder()) // this is the line causing the nullpointerexception
{
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
do_down(event.getX(),event.getY());
}
if (event.getAction() == MotionEvent.ACTION_MOVE)
{
do_move(event.getX(),event.getY());
}
if (event.getAction() == MotionEvent.ACTION_UP)
{
do_up(event.getX(),event.getY());
}
}
return true;
}
micks_thread_thingは、何らかの理由でnullになりつつあります。あなたがnullのためにスレッドをチェックするifステートメントの内部で、この全体の同期チャンクをラップしようとしたら? – FoamyGuy
ちょうどそれを試み、それは働いた。あなたのコメントを答えに入れて、それを正しいものとしてマークします。 – Mick