私は「単純な」同期ロックブロックを持っています:
private final Object screenLock = new Object();
public void Update(double deltaTime)
{
synchronized (screenLock)
{
screenManager.Update(deltaTime);
}
}
public void Draw()
{
synchronized (screenLock)
{
screenManager.Draw();
}
}
deltaTime
ではないnull
、でscreenManager
はないnull
ので、少し迷っています。
そのような高レベルにロックを設定するべきではないことはわかっていますが、ブロックを配置した場所で問題が解決しません。私は2つのスレッドを実行してUpdate
おり、Draw
両方を使用していscreenLock
ます。
NullPointerException
ロックオンの原因は何ですか?
痕跡:
java.lang.NullPointerException com.dnx.manavo.ScreenManager.Update(ScreenManager.java:107) で com.dnx.manavo.ApplicationActivity.Update(ApplicationActivity.java:98) で com.dnx.manavo.GameThread.run( GameThread.java:43)