2012-08-28 75 views
0

我的應用程序是至今工作正常,直到我把Android清單安卓:targetSdkVersion HTTP請求錯誤

<uses-sdk android:targetSdkVersion="14"/> 

現在,應用程序無法進行HTTP請求以下行,只要我可以告訴b'coz的應用程序未登錄。是否有任何我錯過的東西。

當我使用

<uses-sdk android:targetSdkVersion="9"/> or <uses-sdk android:targetSdkVersion="7"/> 

它的工作原理。

+4

「不工作」並不是真正有幫助的問題描述。什麼不起作用*(例如,不能再安裝,在某個點崩潰,..)*? – 2012-08-28 16:11:17

+0

我編輯了這個問題。謝謝 – Rookie

+0

您使用哪個API來執行HTTP請求? java.net或apache? –

回答

0

我解決了這個問題。問題在於異步任務從未輸入doInBackground()。的概率是,我使用webServiceTask.execute();但現在我改成了如果

(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) 
webServiceTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,""); 
    else 
webServiceTask.execute(""); 

它開始後,這方面的工作。

2

聽起來好像你正在從UI線程進行HTTP調用,這是不推薦的,但將與targetVersion爲9,更高版本強制要求從UI線程以外的線程完成HTTP請求,所以當你將targetVersion更改爲14時,此檢查現在得到執行。你需要更新你的應用程序代碼,以從不同的線程進行HTTP調用(結帳加載器和/或AsyncTask來幫助解決這個問題)

+1

注意:如果是這種情況,LogCat輸出應該顯示它正在發生。您應該能夠看到引發的NetworkOnUiThread異常。 –

+0

我正在使用AsyncTask來提出請求。 – Rookie

+0

然後發佈一些代碼,logcat輸出我們不介意讀者。 – superfell