3

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

错误有两行:

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

1 回答 1

0

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

本机open函数作为文件描述符返回第一个空闲的最低数字。因此,有时上述错误是关闭描述符,该描述符在一次关闭和第二次调用之间被重用。大多数情况下,这个描述符被包裹使用。

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

  1. 当打开的文件描述符过多时,这可能表明存在泄漏
  2. 当代码关闭文件描述符两次时

调试这并不容易,很难重现,而且如果您不使用本机代码,则更难理解问题。

如果您没有本机代码,则在尝试与关闭的窗口进行通信时可能会出现此错误。就像您没有关闭某些对话框但关闭了拥有它的活动一样。我从未经历过这种情况,但我将其添加为提示。

于 2014-05-15T11:09:37.727 回答