我正在使用android& canvas,我的代码完美无缺,除了显示分辨率改变(即旋转设备)app forcecloses和log cat shows:
致命异常:Thread-367
显示java.lang.NullPointerException
at ... doDraw()
它将错误链接到的行包含:
canvas.drawARGB(255, 0, 0, 0);
但我相信只要它试图绘制某些内容并显示我想要绘制的第一件内容并不重要。
这是我的跑步循环:
@Override
public void run() {
while (mPlaying) {
Canvas c = null;
try {
c = mSurfaceHolder.lockCanvas(null);
synchronized (mSurfaceHolder) {
if (mPlaying == true) updatePosition();
doDraw(c);
}
} finally {
if (c != null) {
mSurfaceHolder.unlockCanvasAndPost(c);
}
}
}
}
我直接从LunarLander示例中获取。现在每次旋转时都不会发生碰撞,但大约75%的时间都会发生碰撞。
有什么想法吗?谢谢:))
答案 0 :(得分:0)
这可能会对你有所帮助
if your android:targetSdkVersion="12" or less
android:configChanges="orientation|keyboardHidden">
if your android:targetSdkVersion="13" or more
android:configChanges="orientation|keyboardHidden|screenSize">