2013-03-04 124 views
3

這個運行時錯誤是什麼意思?無法創建epoll實例。 errno = 24

我已經使用它,有人說,它屬於計時器,其他人說它是一個套接字錯誤,更多的說,它屬於圖片。我有套接字和定時器(很多定時器),我不知道這些是什麼原因造成的。它的工作時間超過一個小時,其他時間只需5分鐘。有任何想法嗎?

對這個錯誤的基本印象就足夠了。如果我會後的所有代碼,它可能發生,這個頁面會多公里長(當然有點極端,但它是大量的代碼。)

現在發現,它可能屬於too many open files,但即時通訊在我的應用程序中不使用任何外部文件。

似乎是內存泄漏,屬於這一部分:

public static Runnable connection() throws IOException { 
    Log.e("Communication", "connection"); 

    new Thread(new Runnable() { 
     public void run() { 
      Looper.prepare(); 
      try { 
       serv = new ServerSocket(port);                  sock = serv.accept(); 
       reader();                    } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 
    return null; 

回答

2

刪除高於一切的代碼的一部分後正常工作一次。刪除了looper.prepare(),我的應用程序不再死亡。

0
public static void sendJsonList(final List<String> jsonStrlist, 
     final String resturl) { 
    Thread t = new Thread() { 
     public void run() { 
      Looper.prepare(); 
      /* Your HTTP clients code */ 
      try { 
       for (String jsonStr : jsonStrlist) { 
        /* Loop logic */ 
        response = client.execute(post); 
        if (response != null) { 
         /*reponse handler logic */ 
        } 
       } 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

      Looper.loop(); 
     } 
    }; 

    t.start(); 
}