Reputation: 3521
I tried following this tutorial: Getting Data from the Web
I tried implementing it on Android 3.0, the latest platform for tablets, however, I get this error:
Unable to resolve host "www.anddev.org" No address associated with hostname.
You can checkout the URL that I used just to prove that the file exists. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt
I created a private class and extended it with asynctask. Here is the 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);
}
}
Any help out there would be appreciated.
Upvotes: 104
Views: 153294
Reputation: 1316
I had the same issue with the Android 10 emulator and I was able to solve the problem by following the steps below:
With this setup, you URL should work as expected.
Upvotes: 1
Reputation: 3721
If you see this intermittently on wifi or LAN, but your mobile internet connection seems ok, it is most likely your ISP's cheap gateway router is experiencing high traffic load.
You should trap these errors and display a reminder to the user to close any other apps using the network.
Test by running a couple of HD youtube videos on your desktop to reproduce, or just go to a busy Starbucks.
Upvotes: 0
Reputation: 149
Also, make sure that your device isn't on airplane mode and/or that data usage is enabled.
Upvotes: 2
Reputation: 21452
This error because of you host cann't be translate to IP addresses via DNS.
Solve of this problem :
1- Make sure you connect to the internet (check quality of network).
2- Make sure you take proper permission to access network
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Upvotes: 6
Reputation: 62391
May you have taken permission
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
BUT
Upvotes: 67
Reputation: 502
I got the same error and for the issue was that I was on VPN and I didn't realize that. After disconnecting the VPN and reconnecting the wifi resolved it.
Upvotes: 5
Reputation: 111
if you have USB internet like me the emulator seems to dislike connection being turned on and off so you may need to restart the emulator
Upvotes: 11
Reputation: 8421
My bet is that you forgot to give your app the permission to use the internet. Try adding this to your android manifest:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Upvotes: 148
Reputation: 30934
Are you able to reach that url from within the built-in browser?
If not, it means that your network setup is not correct. If you are in the emulator, you may have a look at the networking section of the docs.
If you are on OS/X, the emulator is using "the first" interface, en0 even if you are on wireless (en1), as en0 without a cable is still marked as up. You can issue ifconfig en0 down
and restart the emulator. I think I have read about similar behavior on Windows.
If you are on Wifi/3G, call your network provider for the correct DNS settings.
Upvotes: 12