Host "<URL hier einfügen>" kann nicht aufgelöst werden. Keine Adresse mit Hostname verknüpft

98

Ich habe versucht, diesem Tutorial zu folgen: Daten aus dem Web abrufen

Ich habe versucht, es auf Android 3.0, der neuesten Plattform für Tablets, zu implementieren. Es wird jedoch die folgende Fehlermeldung angezeigt : " Host kann nicht aufgelöst werden" www.anddev.org "Keine Adresse mit Hostname verknüpft. "

Sie können die URL auschecken, die ich verwendet habe, um zu beweisen, dass die Datei vorhanden ist. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt

Ich habe eine private Klasse erstellt und mit asynctask erweitert. Hier ist der Code:

    private class Downloader extends AsyncTask<String,Void,String>{
    String myString = null;
    @Override
    protected String doInBackground(String... arg0) {
        try{
            URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt");
            URLConnection ucon = myURL.openConnection();
            InputStream is = ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);

            ByteArrayBuffer baf = new ByteArrayBuffer(50);
            int current = 0;
            while((current=bis.read())!=-1){
                baf.append((byte)current);
            }
            myString = new String (baf.toByteArray());
        }catch(Exception e){
            myString = e.getMessage();
        }
        return myString;
    }
@Override
protected void onPostExecute(String result){
    tv.setText(result);
}
}

Jede Hilfe da draußen wäre dankbar.

황현정
quelle
Sie können auf diesen Link verweisen . Hoffe das wird helfen
Summved Jain

Antworten:

148

Ich wette, Sie haben vergessen, Ihrer App die Erlaubnis zur Nutzung des Internets zu erteilen. Versuchen Sie, dies Ihrem Android-Manifest hinzuzufügen:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Blutegel
quelle
Sehen Sie immer logcat, um die Art des Fehlers zu erhalten, dann wird Ihr Zeitverbrauch gespart. Wenn Sie vergessen, die Berechtigung hinzuzufügen. logcat zeigt den Fehler an. Oder generieren Sie entweder den Absturzbericht. ........
Vipin Sahu
14
Nun, ich habe auch dieses Problem. Ich habe die Berechtigungen korrekt eingerichtet. URLConnection funktioniert die meiste Zeit einwandfrei. Aber manchmal bekomme ich diesen Fehler mehrmals hintereinander. Es ist besonders schwer zu debuggen, da es nur von Zeit zu Zeit
auftaucht
Sie haben auch meine Erlaubnis, sich großartig zu fühlen, um der Gemeinschaft zu helfen
Sebastien FERRAND
Ich habe diese Erlaubnis hinzugefügt, dann habe ich auch den gleichen Fehler bekommen. Gibt es ein Problem im Emulator
Pratik Butani
7
Ich bin auf diesen Fehler gestoßen, weil ich zuvor mobile Daten deaktiviert und vergessen hatte, sie wieder einzuschalten. Im Büro hat es gut funktioniert, aber sobald ich kein vertrautes WLAN mehr hatte, bekam ich den Fehler. Manchmal sind es die dummen Dinge: |
Karmic Coder
117

Bitte überprüfen Sie, ob Sie eine gültige Internetverbindung haben.

Vladimir Ivanov
quelle
hmm ...: DI hat es überprüft und es scheint, als hättest du recht. Ich weiß wirklich nicht warum, aber meine Internetverbindung ist in Ordnung. Der Browser im Emulator kann jedoch auf nichts zugreifen. Das ist seltsam. Der Emulator-Browser hat vor ein paar Minuten einwandfrei funktioniert.
29.
1
Ich fühle mich wie der größte Idiot. Ich habe zu Hause statt im Büro entwickelt und vergessen, WLAN einzurichten. Manchmal braucht es solche Dinge, um dich daran zu erinnern, dass du manchmal ein Idiot bist. Also, von ganzem Herzen danke, dass ich mich wie ein Idiot fühle! :)
RileyE
2
Auch für mich! Irgendwie können Wifi und Flugzeugmodus ausgewählt werden, so dass ich nur den Flugzeugmodus deaktivieren musste (ich war nicht wirklich mit dem Internet-Palmface verbunden)
d1jhoni1b
1
Lol weiß nicht, warum ich erwartet habe, dass sich mein S3 ohne eingeschaltetes WLAN anmeldet.
Declan McKenna
Damit. Ich habe gestern die Internetverbindung zum Simulator abgeschaltet und heute Morgen vergessen, sie einzuschalten. Danke!
Robert J. Clegg
65

Mögen Sie die Erlaubnis genommen haben

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

ABER

Möglicherweise haben Sie vergessen, das Internet in einem mobilen Gerät oder einem anderen Gerät einzuschalten.

Pratik Butani
quelle
2
Das Gerät nicht über WLAN zu haben, hat mich überrascht! Hoppla.
Nico
11
Durch einen Neustart des Emulators wurde das Problem für mich behoben.
Kacy
Vielen Dank, dass Sie den Teil MOBILE DEVICE hervorgehoben haben. :)
Burak Karakuş
12

Können Sie diese URL über den integrierten Browser erreichen?

Wenn nicht, bedeutet dies, dass Ihre Netzwerkeinrichtung nicht korrekt ist. Wenn Sie sich im Emulator befinden, sehen Sie sich möglicherweise den Netzwerkabschnitt der Dokumente an.

Wenn Sie unter OS / X arbeiten, verwendet der Emulator "die erste" Schnittstelle, en0, auch wenn Sie drahtlos sind (en1), da en0 ohne Kabel immer noch als aktiv markiert ist. Sie können ifconfig en0 downden Emulator ausgeben und neu starten. Ich glaube, ich habe über ein ähnliches Verhalten unter Windows gelesen.

Wenn Sie Wifi / 3G verwenden, wenden Sie sich an Ihren Netzwerkanbieter, um die richtigen DNS-Einstellungen zu erhalten.

Heiko Rupp
quelle
hmm ...: DI hat es überprüft und es scheint, als hättest du recht. Ich weiß wirklich nicht warum, aber meine Internetverbindung ist in Ordnung. Der Browser im Emulator kann jedoch auf nichts zugreifen. Das ist seltsam. Der Browser des Emulators hat vor ein paar Minuten einwandfrei funktioniert.
29.
Vielen Dank! In meinem Fall wurde ein Intranet als URL festgelegt, die den Fehler verursacht. Die Verwendung eines Extranets löste offensichtlich das Problem
CGR
11

Wenn Sie wie ich über USB-Internet verfügen, scheint es dem Emulator nicht zu gefallen, dass die Verbindung ein- und ausgeschaltet wird, sodass Sie den Emulator möglicherweise neu starten müssen

Ian
quelle
6

Dieser Fehler aufgrund Ihres Hosts kann nicht über DNS in IP-Adressen übersetzt werden.

Lösen Sie dieses Problem:

1- Stellen Sie sicher, dass Sie eine Verbindung zum Internet herstellen (überprüfen Sie die Qualität des Netzwerks).

2- Stellen Sie sicher, dass Sie die richtige Berechtigung zum Zugriff auf das Netzwerk haben

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Mina Fawzy
quelle
4

Ich habe den gleichen Fehler erhalten und das Problem war, dass ich auf VPN war und das nicht realisiert habe. Nach dem Trennen des VPN und erneuten Verbinden des WLAN wurde das Problem behoben.

adubey
quelle
2

Stellen Sie außerdem sicher, dass sich Ihr Gerät nicht im Flugzeugmodus befindet und / oder die Datennutzung aktiviert ist.

Dave Justen
quelle
0

Wenn Sie dies zeitweise über WLAN oder LAN sehen, Ihre mobile Internetverbindung jedoch in Ordnung zu sein scheint, ist der billige Gateway-Router Ihres Internetdienstanbieters höchstwahrscheinlich einer hohen Verkehrslast ausgesetzt.

Sie sollten diese Fehler abfangen und dem Benutzer eine Erinnerung anzeigen, andere Apps über das Netzwerk zu schließen.

Testen Sie, indem Sie ein paar HD-YouTube-Videos auf Ihrem Desktop ausführen, um sie zu reproduzieren, oder gehen Sie einfach zu einem geschäftigen Starbucks.

Dominic Cerisano
quelle
0

Das Neustarten des Emulators funktioniert in einigen Szenarien.

Ramdhas
quelle
0

Ich hatte das gleiche Problem mit dem Android 10-Emulator und konnte das Problem mithilfe der folgenden Schritte lösen:

  1. Gehen Sie zu Einstellungen → Netzwerk & Internet → Erweitert → Privates DNS
  2. Wählen Sie Hostname des privaten DNS-Anbieters
  3. Geben Sie Folgendes ein: dns.google
  4. Klicken Sie auf Speichern

Bei diesem Setup sollte Ihre URL wie erwartet funktionieren.

Andrey P.
quelle