【问题标题】:error FATAL EXCEPTION: Thread-111错误致命异常:线程 111
【发布时间】:2016-01-25 14:13:43
【问题描述】:
@Override
public void run() {
    Canvas canvas;
        while (running) {
        canvas = null;
        try {
            canvas = this.surfaceHolder.lockCanvas();
            synchronized (surfaceHolder) {
                this.gamePanel.update();
                this.gamePanel.render(canvas);              
            }
        } finally {


            if (!canvas.equals(null)) { // error is here.
                surfaceHolder.unlockCanvasAndPost(canvas);
            }
        }   
    }
}

【问题讨论】:

  • 你真的应该发布一些解释和问题,而不是简单地粘贴带有错误消息的代码
  • 这是我在 LogCat 中得到的。 01-25 14:25:54.628: E/AndroidRuntime(3357): 致命异常: Thread-197 01-25 14:25:54.628: E/AndroidRuntime(3357): java.lang.NullPointerException 01-25 14:25: 54.628: E/AndroidRuntime(3357): 在 com.zm.atz.Maingame_m1.render(Maingame_m1.java:64) 01-25 14:25:54.628: E/AndroidRuntime(3357): 在 com.zm.atz.Mainthread_m1 .run(Mainthread_m1.java:31)
  • 你得到的还不止这些。无论如何,你想要`if(canvas != null)`,因为现在你可能正在调用一个空对象的方法。并且请不要在 cmets 中发布您的 logcat ......它很难阅读。相反,请使用问题中标签下方的编辑按钮将其添加到您的帖子中。

标签: android


【解决方案1】:

如果执行有任何错误

canvas = this.surfaceHolder.lockCanvas();

那么canvas 将是null。这就是我怀疑这里发生的事情。

改变

if (!canvas.equals(null)) {

if (canvas != null) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-30
    • 2013-08-11
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多