无法使用输入事件.Android

时间:2012-08-14 09:40:15

标签: java android

这是我经常在我的应用程序中看到的错误。任何人都知道,任何想法,这个错误的原因是什么。

错误有两行:

     consumer ~ Error -1 pinning ashmem fd 69
' ~ Failed to consume input event.  status=-2147483648

1 个答案:

答案 0 :(得分:0)

我最近在应用程序中修复了类似的错误。问题出在两次关闭文件描述符的错误本机代码中 - 这意味着它首先在Close方法中关闭它,然后在析构函数中再次调用Close,而不检查文件描述符是否已经关闭。

Native open函数作为文件描述符返回,这是第一个空闲的最小数字。因此,不时上面的bug是关闭描述符,它在一个Close和第二次调用之间重用。主要是这个描述符被parcel使用。

在搜索此错误的解决方案时,我发现在两种情况下会发生此错误:

  1. 当有太多文件描述符被打开时,这可能表明存在泄漏
  2. 代码关闭文件描述符两次
  3. 调试这并不容易,它很难重现,如果你不使用本机代码那么它就更难理解这个问题。

    如果您没有本机代码,那么在尝试与已关闭的窗口进行通信时可能会发生此错误。就像你没有关闭一些对话但关闭活动拥有它。我从来没有经历过这样的情况,但是,我将其添加为暗示。