2012-08-14 59 views
3

這是我經常在我的應用程序中看到的錯誤。任何人都可以知道,任何想法,這個錯誤的原因是什麼。無法使用輸入事件.Android

錯誤有兩行:

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

任何鉤子?????? – NitZRobotKoder 2013-09-02 09:53:44

回答

0

我最近固定類似的錯誤在應用程序,我的工作。問題在於本地代碼錯誤關閉了文件描述符兩次, - 這意味着它首先在Close方法中關閉它,然後在析構函數中再次調用Close,而不檢查文件描述符是否已經關閉。

原生open函數返回文件描述符,一個第一個空閒的最低數字。所以有時候上面的bug是關閉描述符,在一次Close和第二次調用之間被重用。它大多發生在這個描述符被包裹使用。

在尋找解決這個錯誤,我發現,這個錯誤在兩種情況下發生:

  1. 當有太多的文件描述符是開放的,這可能表明,有泄漏
  2. 時代碼正在關閉文件描述符兩次

調試這不容易,難以重現,如果您不使用本機代碼,那麼它更難以理解問題。

如果您沒有本機代碼,那麼當嘗試與已關閉的窗口進行通信時可能會發生此錯誤。就像你沒有關閉一些對話框一樣,但是關閉了它的活動。我從來沒有遇到過這種情況,但我將其作爲提示加入。