【问题标题】:Publisher closed input channel or an error occurred. events=0x8发布者关闭输入通道或发生错误。事件=0x8
【发布时间】:2012-03-04 07:56:58
【问题描述】:

02-12 18:48:57.049: E/InputQueue-JNI(4659): channel '2be9da40 com.forwardapps.liveItems.LiveItemsService (client)' ~ Publisher closed input channel or an error occurred. events=0x8

每当我将动态壁纸设置为背景时,我都会在Ice Cream Sandwidth(ICS) 中收到此错误。它适用于所有其他版本的 android。

有谁知道这里发生了什么或者他们能解释一下吗?

【问题讨论】:

  • 当我的活动被破坏而没有关闭上下文菜单时,我刚刚看到了这一点。这与您关注的流程相同吗?
  • 我刚刚在重新启动 Activity 时看到了这一点(使用 'getIntent' 和 'finish')。它似乎并没有真正引起问题。

标签: android android-emulator crash


【解决方案1】:

您是否真的看到了问题,或者只是被错误消息困扰?我相信当输入事件管道的客户端由于服务器关闭连接而失败时,会打印此消息。例如,如果您在销毁 Activity 时没有关闭窗口,则可能会发生这种情况。

【讨论】:

  • 当我在等待 GPS 锁定时,我在 x86 模拟器中看到了这个连接。 (该设备似乎已配置为发送静态 GPS 坐标)
【解决方案2】:

在绘制画布的代码周围放置一个 try, catch 块。

更具体地说:

Canvas canvas = null;

    try {
        canvas = _surfaceHolder.lockCanvas(null);
        synchronized (_surfaceHolder) 
        {
            onDraw(canvas);
        }

        if(canvas != null)
        {
            _surfaceHolder.unlockCanvasAndPost(canvas);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

【讨论】:

  • 好的,标记为正确答案,但首先是什么问题?
  • 我看到了这个答案(因为我遇到了类似的错误),这对我来说没有多大意义:你的意思是不是“放置一个 try/finally(而不是 try/catch) drawcanvas?通过这种方式,您可以将解锁放在 finally 块中,并确保(Tm)锁定已释放。
  • 这个答案没有帮助
猜你喜欢
  • 2012-01-30
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多