Parsing mit jsoup wirft Fehler (NetworkOnMainThreadException)
Ich habe die jsoup Bibliothek jsoup-1.7.1.jar Kern und importiert es, um mein Projekt mit den Projekt -> Eigenschaften->Java Build Path -> Add external Jars und ich klebte die Bibliothek-Datei meine Ordner libs. Jedoch scheint es einige problem mit dem Import der Jsoup-Bibliothek für mein Projekt. Wenn ich meine app beim starten bekomme ich diese Fehlermeldung.
12-26 22:59:24.133: E/AndroidRuntime(6710): FATAL EXCEPTION: main
12-26 22:59:24.133: E/AndroidRuntime(6710): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jsouptest/com.example.jsouptest.MainActivity}: android.os.NetworkOnMainThreadException
Nach langem suchen und Fragen fand ich heraus, dass eclipse sieht die jsoup.jar haben, aber keine Paket, APK-Datei für die app zu laufen. Ich habe versucht, zu organisieren Importe durch drücken Shift+Alt+O und ich würde die gleichen Fehler. An diesem Punkt, ich bin nicht sicher, was falsch ist und haben keine Idee wie es zu lösen ist. Ich hoffe nur, jemand wird mich führen, in Richtung der Lösung. Schätzen Sie Ihre Zeit!
Dies ist mein code:
package com.example.jsouptest;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Document doc;
try {
doc = Jsoup.connect("http://google.com/").get();
String title = doc.title();
System.out.print(title);
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie eine
Das hat nichts zu tun mit dem Glas richtig funktioniert oder nicht.
Ist die Ausnahme, die ausgelöst durch die neuen Versionen von Android, so dass Sie nicht sperren Sie den UI-Thread (was ist der Haupt-Thread) zu tun, der Netzwerk-Betriebe.
Verwenden Sie ein AsyncTask (einfache Erklärung dazu, was jeder Teil der AsyncTask nicht gefunden werden kann hier)oder anderen Thread für Netzwerk-Zeug. Ein Asynctask ist einfacher, mit zu arbeiten, wenn Sie müssen, aktualisieren Sie die Benutzeroberfläche einmal die Arbeit im hintergrund abgeschlossen ist.
Ein Beispiel für einen AsyncTask mit Ihrer code-Basis können sein:
Ich gehe davon aus:
TextView
) da das ist, was AsyncTasks sind in der Regel verwendet für.Aufruf der AsyncTask, setzen diese nach
setContentView(R.layout.activity_main);
Importieren Sie diese Bibliothek
android.os.NetworkOnMainThreadException
undandroid.os.StrictMode
und unter strikten ModusAuch fügen Sie diese Zeile zu manifestieren: