Intereting Posts
Как создать класс с T и List <T> Указатель указателя FileOutputStream Местоположение google-services.json в дереве проекта : ВНИМАНИЕ: android / base / files / IniFile.cpp: 158: Не удалось обработать файл .ini. C: \ Users \ User_Name \ .android \ emu-update-last-check.ini для чтения. Android: Когда служба убита, как мы можем сохранить состояние службы для последующего восстановления? 5.1 Crash – основной цвет задачи TaskDescription должен быть непрозрачным Лучшая практика внедрения обратной связи Retrofit для воссозданной деятельности? Как открыть NavigationDrawer только при первом запуске приложения? Как заставить клавиатуру Android отображать кнопку «.com» Как остановить обслуживание самостоятельно? Кнопка переключения кнопок Android Скрыть кнопки переключателя задач домашней задачи ICS Ошибка установки: INSTALL_FAILED_INSUFFICIENT_STORAGE? Во время запуска эмулятора Smack 4.1 Проблема повторного подключения Какой самый простой способ установить ограничение по дате до тех пор, пока приложение не будет использовано?

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();