Jsoup.connect () работает с Java, а не с Android

Я пробовал Jsoup.connect() указанный на веб-сайте Jsoup, и отлично работает на Java.

По какой-то причине я не могу заставить его работать в проектах Android (Eclipse), хотя я разрешаю разрешение на доступ в Интернет в своем AndroidManifest . Библиотека Jsoup установлена ​​правильно, и я могу работать с Jsoup.parse() без каких-либо проблем. Вот несколько строк кода того, что работает на Java, а также разрешение в AndroidManifest .

Ява

 public static void main(String[] args){ Document doc; try { doc = Jsoup.connect("http://google.ca/").get(); String title = doc.title(); System.out.print(title); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

AndroidManifest.xml

 <uses-sdk android:minSdkVersion="12" /> <uses-permission android:name="android.permission.INTERNET"/> <application 

Когда я пытаюсь запустить его, он выходит из строя, и в журнале говорится:

 01-09 20:19:30.560: E/AndroidRuntime(26839): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mrdroidinator.com/com.mrdroidinator.com.Parselhjmq}: android.os.NetworkOnMainThreadException 

http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

Проблема в том, что вы выполняете сетевую операцию в основном потоке, что запрещено в уровне API 11+. Это связано с тем, что если вы это сделаете, пользовательский интерфейс «заморожен», пока документ не завершит загрузку, поэтому необходимо выполнить такие операции в другом потоке, что не влияет на производительность пользовательского интерфейса.

Вот как вы начинаете новый поток:

 Thread downloadThread = new Thread() { public void run() { Document doc; try { doc = Jsoup.connect("http://google.ca/").get(); String title = doc.title(); System.out.print(title); } catch (IOException e) { e.printStackTrace(); } } }; downloadThread.start();