2013-11-04 117 views
0

我有一個應用程序向服務器發送一個http請求,並接收一個JSON進行處理。我在物理設備和Genymotion上測試它。Genymotion無法連接到服務器?

該應用程序在物理設備上運行良好,但Genymotion引發NetworkOnMainThreadException

我跟蹤的例外,這是問題的一部分:

.. 
DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpPost httpPost = new HttpPost(url); 
httpPost.setEntity(new UrlEncodedFormEntity(params,"UTF-8")); 

// Exception on this line: 
HttpResponse httpResponse = httpClient.execute(httpPost); 
// 
HttpEntity httpEntity = httpResponse.getEntity(); 
... 

看來,Genymotion無法連接到服務器執行的請求。但它的瀏覽器加載網站就好了。

那麼,有誰知道這裏發生了什麼問題?

+1

有你在異步任務裏面叫上面的東西 –

+0

@TonyStark我想我應該。我只是閱讀這個問題的答案(http://stackoverflow.com/questions/9413625/android-android-os-networkonmainthreadexception?rq = 1),似乎這個例外與Genymotion無關,但是API級別。我的物理設備有android 2.3,因此不會給我這個例外。 – Mahm00d

+0

我使用geny動作對我來說它的工作完美 –

回答

0

我發現了什麼問題:

在本answer解釋,因爲API 11,NetworkOnMainThreadException被拋出在主線程中使用長時間運行的任務(如HTTP通信)通知。

通過使用AsyncTask問題得到了解決,並且所有工作都按原樣進行。