2013-06-24 95 views
0

我是Android應用程序開發的新手。我的Android應用程序顯示「不幸的是,AppTest已停止。」當我嘗試用Jsoup用以下代碼連接到Internet時。Android應用程序在使用Jsoup獲取HTML頁面時停止工作

我已經將Internet權限添加到AndroidManifest.xml。 當我使用脫機html進行測試時,Jsoup正常工作,如<p>Nay</p>。 我的Android手機是完全可用的Internet連接。哪裏不對?

Document doc; 
    try { 
     // need http protocol 
     doc = Jsoup.connect("http://google.com").get(); 

     // get page title 
     String title = doc.title(); 
     psi.setText(title); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+0

發佈堆棧跟蹤和一些更多的代碼 – Raghunandan

+0

我已調試此應用程序。錯誤似乎發生在HttpConnection上。在類文件編輯器中,它顯示「未找到源」,「此類文件的JAR屬於容器'Android Private Libraries',它不允許修改其條目上的源附件。」 –

+0

崩潰不是來自此代碼,我們需要更多的代碼來幫助你 – Hartok

回答

0

感謝所有人,但答案和建議無法幫助我。在犯了很多錯誤之後,我找到了解決辦法。遇到此問題時,我想發佈我的答案以幫助其他人。

Jsoup似乎運行在另一個線程比UI線程。因此,您只需要創建另一個線程與AsyncTask使用Jsoup如下所示。

class GetHtmlwithJsoup extends AsyncTask<String, Integer, String> 
protected String doInBackground(String... param) { 
    try { 
    //Jsoup Connecting and Getting html page code at here 
    } 
    catch (TwitterException e) { 
    return "Failed to get"; 
    } 
} 

@Override 
protected void onProgressUpdate(Integer... values) { // 
    super.onProgressUpdate(values); 
    // Not used in my case 
} 

@Override 
protected void onPostExecute(String result) { // 
    //show Jsoup HTML Ouput to UI widgets code at here... 
} 
} 
+0

這不是Jsoup錯誤,只是你不能做互聯網調用在UI線程中 – Enrichman

+0

@ Enrichman,是的,這是我的錯在UI線程中的互聯網調用,謝謝。 –

0

如果使用doc此塊外,你必須檢查它是否是正確的初始化。

其他猜測,您的應用請求INTERNET權限?