ChatGPT解决这个技术问题 Extra ChatGPT

Android emulator not able to access the internet

https://i.stack.imgur.com/j8eYL.png

I have discovered an additional issue with Android Studio 2.3 that is not related to internet access but could somehow be related to the one above. With Android Studio open to a project and an emulator running, I can run the app on the emulator just fine. But if I open Android Device Monitor, it tells me that the emulator is offline. Then, if I close Android Device Monitor and go back to Android Studio, it also tells me that the emulator is offline. I have to close and restart the emulator before Android Studio can find it again. This problem, like the one above, is repeatable.
Another update. I installed Android Studio 2.3 on another, older/slower Windows 10 computer, and the problem still occurs. Also, at one point I thought that the problem might be related to a bad Microsoft WPD patch, but the older computer did not have the patch installed. Plus, after several unsuccessful attempts, I was able to remove the bad patch from my main computer, and still no success in getting Chrome to work on an emulator. At this point I feel more certain that the problem lies with Android Studio 2.3.
I think this question is still good, as it is more 'general' than the cited one and also because it mentions the upgrade of Android Studio. As of april 2018, I have just upgraded it to version 3.1.2 and suddendly started to have this issue.
I don't understand why we have to waste so much time on this kind of problems. Android team ...just fix it!
I deleted the emulator device and relaunch a new one, solved. I spent half a day struggling at this issue... I'm a fool. Android team, wtf, you are better than that!!!

A
Ana Paula

👉 1st try "Cold booting" the emulator as suggested here.

👉 If cold booting doesn't work, try changing the DNS address of your network to 8.8.8.8 (Google's DNS) or another of your preference:

MacOSX:

Open "System Preferences"

Click on "Network"

Select the network which your computer is connected and click on "Advanced"

Select "DNS", Select the "+" button, type "8.8.8.8" (Google's DNS) or if you prefer OpenDNS, "208.67.222.222"

Select "Ok" and "Apply"

Windows & Linux:

https://developers.google.com/speed/public-dns/docs/using

After that close the emulator and start it again.


If you don't want your DNS traffic going through Google, use OpenDNS settings instead. 208.67.222.222 and 208.67.220.220
I did the same, but then had to restart the emulator to get it to work, thanks for the tip though!
You can also instead of "brute forcing" your whole computer to use a new DNS server (And then by defaults having your emulator inherit those changes) just change the DNS settings for the emulator... There are a bunch of ways to do it. More details on the various options available here: stackoverflow.com/questions/2039964/…
The problem is having partially invalid DNS settings in general. Reset them to something valid, and it'll work, doesn't have to be 8.8.8.8. My Mac was set up with 3 DNS servers, the first 2 of which were invalid. It still worked for other things since the third was ok, but I'm guessing the simulator only took the first two (it's common to only have primary and secondary) or is otherwise not as robust against this misconfiguration.
It worked for me. I passed from my office wifi to a personal one, then wiping the data or changing the boot mode didn't help. So...why adding the DNS (I didn't have any) worked?
T
Top-Master

After trying many of these solutions, I was going to just delete my current AVD and make it again, but when I clicked the down arrow on the AVD, I noticed "Cold Boot Now".

https://i.stack.imgur.com/2Ddkh.jpg

On a whim I tried that. Lo and behold my emulator has internet connectivity again!

Command-line approach

In case you start Emulator through command, pass -no-snapshot-load option, like:

%ANDROID_HOME%/emulator/emulator.exe -netdelay none -netspeed full -no-snapshot-load -avd Pixel_2_API_28

Or for MacOSX:

$ANDROID_HOME/emulator/emulator -netdelay none -netspeed full -no-snapshot-load -avd Pixel_2_API_28

Note that you may need to change -avd Pixel_2_API_28 part (with your own Virtual-Device name). Also, most tools use ANDROID_HOME environment-variable name, hence define that (if not already), but nowadays ANDROID_ROOT is yet another naming-option.

Decision (edit)

Ok, for those saying why not just wipe data and restart. Do you reformat your PC every time you restart it? Wiping data on the emulator is just like doing a factory reset to a phone or reformatting your hard drive on your PC and reinstalling your OS. It is unnecessary unless the data is totally corrupt.

When you shut off the emulator and restart it, it is like putting your PC in hibernate or sleep mode. Memory is not wiped, it is saved.

Doing a cold boot is the same as rebooting your phone or rebooting your PC. It resets memory and lets things reload. This allows the network emulation to start with clean memory and connect properly.

So, don't wipe your data. Just cold boot. If it still doesn't work, then wipe, but save that as a last resort.


This fixed it for me after switching from wired to wifi
Works for me too, facing the same problem switching between different networks adapters. The problems seems to be that the emulator is still somehow connected to the previous connection configuration, so when the emulator is start with Cold Boot Now the network config is restarted and everything start working again. Thanks for sharing ;)!!
Works fine! but why?
Do you wipe your phone every time you reboot? That's what a cold start is on the emulator, a cold reboot. It's the same as shutting off your phone and turning it back on. There is no need to wipe data from the emulator after a cold boot unless it still has issues.
This worked for me.. I tried different proxy , tried reboot, created different AVD.. Not sure why this worked.. but worked..!!
P
Prashant Pokhriyal

I found a temporary solution on an old Stack Overflow thread at Upgraded to SDK 2.3 - now no emulators have connectivity. Note that this thread talks about Android SDK 2.3, not Android Studio 2.3. The problem seems to be that the emulator can't find the DNS my computer is currently using, and the temporary workaround is to start the emulator from the command line and specify the DNS server. Whatever problem occurred back then must have reappeared in the latest version of Android Studio.

The temporary solution outlined below fixes the problem with the emulator accessing the internet. However, it does not fix the problem that occurs when trying to run Android Device Monitor. Doing so will still make the emulator go offline as described above.

Note that there are two files named "emulator.exe" in the sdk -- one under sdk\tools and another under sdk\emulator. Either might work below, but I use the one under sdk\emulator.

The first step is to find where the SDK is located. Assuming a user name of "jdoe" and a default installation of Android Studio on Windows, the SDK is most likely in

C:\Users\jdoe\AppData\Local\Android\sdk

The second step is to determine the name of the AVD (emulator) that you want to run. The command

C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -list-avds

will show the names of your AVDs. On my computer, it shows only one, Nexus_5X_API_25.

To start the emulator from the command line with a specified DNS server, use something like the following:

C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -avd Nexus_5X_API_25 -dns-server 8.8.8.8

In this case, 8.8.8.8 is a Google public domain name server.

The above commands can be shortened if you create appropriate environment variables and edit your PATH environment variable, but I recommend caution when doing so.


This absolutely worked for me, but I wish there was a way to clean up the DNS outside the command line.
after paying 199$ license for windows pro to get Hyer-V and after discovering that the visual studio emulator doesn't support google_api_services, i found this solution that make the android emulator to connect internet... I feel like :|
This totally works, but unbelievable this is still an issue with Android Studio 3.0 (emulator 27.1.12). Maybe related to having both wired and wireless network adapters in the system with wireless disabled?
I filed a bug with Google and I hope they review the comments here and resolve whatever the underlying issue is.
@paws could you link the bug that you've filed? Want to star it as well!
B
Basil Mariano

[UPDATE 2022] for Mac Users

For NOT Apple Silicon users

System Preferences Network WiFi > Select Advanced From Advanced Choose DNS tab Add DNS Server 8.8.8.8 Emulator must be restarted after DNS Server has been added (Thanks to @kapusch)

For Apple Silicon users

as per @bourdier-jonathan You can fix the Silicon issue here: Emulator appearing offline on M1 Mac after the last update of arm64-v8a

By replacing the AVD system images you have downloaded with the r02 images. Because It appears r03, r04, and r05 all don't work on m1


Good to know that emulator must be restarted after DNS Server has been added
Also make sure that the 8.8.8.8 DNS Server is the first on the DNS Servers list.
This solution is not working for me as of 8/24/2021 and using the 20201-3-1 release.
This solution is not working on Apple silicon with the Android Studio Arctic Fox | 2020.3.1 macOS 11.4
Not working in AS Archtic fox, any other solution?
J
Joao Gavazzi

Updating my WIFI adapter to resolve DNS on 8.8.8.8 solved the issue for me. It started to happen after an Apple update which messed up the DNS address.

https://i.stack.imgur.com/mYdRU.png


Don't forget to restart the emulator after making this change, as Ana Paula suggests.
See my comment above about using OpenDNS instead of Google. stackoverflow.com/questions/42736038/…
Doesn't have to be 8.8.8.8 or OpenDNS, any working DNS server will work
H
Hashim Zahid

Simply open the AVD Manager and wipe the data of that emulator works for me.


It must of had my old wifi connection cached, because I moved to another wifi location and this issue started happening. I wiped the AVD and restarted and it picked up the wifi at the new location.
After wipe data it failed to launch the emulator and shows the AVD was killed message
It help me as well. Wipe data is working.
A
AminRah

Open Android emulator and go to the Extended Controls. Then go to the setting => proxy(Tab), uncheck "Use Android studio HTTP proxy setting" and click "Apply".


I on the other hand had to check it back again to make internet work. :(
worked like a charm, but had to restart the emulator for it to pick up the setting.
especially i had to make a cold boot after unchecking this option.
Nice, it's working for me.
C
Cyber

macOS: long Story short.. make sure your DNS settings 8.8.8.8 is the first in line, wipe your data and do a cold boot.

https://i.stack.imgur.com/2ZVla.png


This should be marked as the correct answer! Thanks a ton, man. You saved a lot of my time.
Thank you! Im not sure why I need to do this but it works now.
worked on my mac. should be marked as correct answer. By the way no need to wipe your data just in case
C
Community

I experienced this same issue after upgrade. Upon opening the Chrome browser in the emulator, google.com could no longer be reached.

I found a post on SO that suggested the problem was with the emulator trying to use a disconnected network adapter. For me the problem was occurring when I was connected to a LAN. Disabling the wireless LAN adapter fixed the issue.

To disable the adapter:

Navigate to Network connections Find the adapter Right click and choose disable


Thanks for the tip. I was beginning to suspect something like this since I noticed that connecting via the wired LAN adapter also solved the problem. It should also be possible to fix this problem by changing the priority of the two adapters, but either way seems to be a drastic fix. Why can't Google simply fix the emulators to use the connection that my computer is using. As I said, this was not an issue before I upgraded to Android Studio 2.3. For now I will stick with the other solution where I specify the DNS server.
Thanks. I have LAN and wireless adapter. Working after disable wireless adapter.
Exactly! I have turned off all my PCs network adapters excluding my WiFi adapter and this worked. Thank you.
B
Blasco73

https://i.stack.imgur.com/Yzdj6.png


It works for me. I'm my case I was using emulator with API 22. After "Wipe Data" and "Cold Boot Now" the internet conection works fine, but I had to reinstall the app.
s
s__ale

Reminder: the Android Emulator internet connection does not work if you turn on a VPN system on you computer.


I had this issue, it helps to boot the emulator with no VPN connections and only after it booted, connect to your VPN of choice
Yes it does for me. I just have to start emulator after VPN is connected.
If your VPN restricts use of emulator, start it in command line, see stackoverflow.com/a/42784657/2914140.
Thanks, disabling the company VPN works...
That was it. I had to do a cold boot to make it work too.
P
Patrick Favre

This happend to me when the emulator froze and I had to kill the process. The signal icon always showed the small "x" as in the screenshot and no internet connection was successful.

The only thing that helped was uninstalling and reinstalling the emulator (not the AVD images)

In Android Studio:

Tools-> Android -> SDK Manager Uncheck "Android Emulator" and let it uninstall then check again and let it install again.

https://i.stack.imgur.com/4XTcW.png


Had the exact same problem, did this and the problem wasn't fixed. But after rebooting the whole computer the internet is now working on the emulator.
it's working for me, my situation .. reinstall android studio i used old my SDK files
This is the only solution that worked for me (on a Mac fyi)
Have to agree that this was the only solution also worked on a mac!
I noticed that Android Emulator had an upgrade from 30.6.x to 30.7.5. I just upgraded it and everything suddenly started working for me. I tried all sorts of things such as the plethora of "DNS=8.8.8.8" suggestions and nothing worked except upgrading Android Emulator.
J
Jason

I am also facing the same problem, but I am trying to solve the problem using various posts. Today I discovered this problem. Your computer configuration is most likely the problemm, not Android Studio and the Android Emulator.

The problem is coming from your Network setup. Just set the Primary DNS Server to 8.8.8.8, which will solve the problem.


D
Deepak N

I got a simple and permanent solution for this issue in windows.

https://i.stack.imgur.com/gMHuH.png

https://i.stack.imgur.com/ahV7y.png

https://i.stack.imgur.com/a5S39.png

https://i.stack.imgur.com/7RXlW.png

https://i.stack.imgur.com/uFO2B.png

https://i.stack.imgur.com/nVtHV.png

Now you can open your emulator whenever and you will get internet in the android emulators.


None of the other solutions worked for me, but this one worked! As a mention: I'm on LAN cable, so I've made the changes on this setting instead of the Wifi connection.
Thanks for the details in this comment.It helped me solve my problem.
D
Daniel Wilson

This was a problem for me last time the emulator updated itself and back then disabling other network adapters fixed it. Now it's cropped up again but the only adapter that is enabled is a single wifi one so I have nothing to disable.

The issue only reappeared after I updated via a prompt the emulator tools to 26.1.1. I uninstalled and reinstalled the emulator via the SDK Tools update tab and thankfully the only option when installing again right now is to install 26.0.3 (which seems to be working okay).

Moral of the story is to be very wary of emulator updates.


Worked for me, had the exact same version, and after uninstalling, reinstalled 26.0.3.
This solution worked for me too! I had to install 26.0.3 from Android Studio 2.3. though (the 3.0 preview only showed 26.1.1.). Thanks a lot!
s
smithygreg

For me the problem was caused when I took my laptop home without restarting the emulator. From what I have read, when the emulator starts up it reads your PC's DNS settings and uses them. When I was on my home network, my work DNS settings were failing. So yeah. Just restarting the emulator solved my problem.


Simple and precise. It was my problem as well.
d
div

I faced this problem after i kept my emulator ON while going from my home to a cafe. "Cold Boot Now" fixed the issue.


S
Sparx it solutions

After 10 days of trouble, I just deleted everything from C:\Android\.android\ and deleted all created AVDs. Now internet seems to work fine.


I
IAMSTR

closing the emulator and reopening worked for me

OS WINDOWS 10


That worked for me. I have tried with restarting the virtual phone, but it was not enough. The issue might be triggered by allowing the running emulator through hibernate. Thanks.
H
Hassan Kalhoro

Just goto AVD manager and Cold Boot Now worked for me


W
Wildan Muhlis

I can make it work after turn off and turn on the wifi on android config

https://i.stack.imgur.com/xSdf5.gif


This worked for me. but you have to restart the emulator once
s
surga

I am on android studio 3.1 and it happened. Solved it by restarting the adb server

$ adb kill-server
$ adb start-server

Hope it helps. Thank you


helped a lot thanks. i think sdk manager wasnt starting the server at all
F
FatalMan

There was a problem for me too, by disabling the proxy in Android Studio settings, and run the emulator with "Cold Boot Now", the problem was resolved.


A
Avid Programmer

Please go through the below link.

https://developer.android.com/studio/run/emulator-networking

Emulator open, click More ..., and then click Settings and Proxy. From here, you can define your own HTTP proxy settings.

Enter the hostname by following Run > cmd > hostname

https://i.stack.imgur.com/XGOJ4.png

Finally, check the internet access inside the emulator by browsing in chrome or google.

Note: Often wipe data will clear the issue. Please follow all steps


M
Man

if android browser can access internet you can run emulator from terminal by this command

go to SDK path then

$ /tools/emulator -avd Nexus_5X_API_23 -netdelay none -netspeed full

it solve your internet problem...


N
Naveen rana

I was having the same issue and i resolved with below steps:-

Go to emulator setting and then go to

setting->Proxy->Either configure it Manually or use Tick use Android Studio HTTP proxy simulator.

please vote, if this works for you


F
Faheem

Just recreating the emulator with another target API worked for me


S
Stephen Kennedy

Maybe you set a proxy for Android Studio and the proxy does not work. Try without proxy.


B
Ben Manwaring

Solution for MacOS that does not use a custom DNS for your whole machine

Step 1

Locate the emulator executable Android Studio is using inside the Android SDK and rename it to emulator-original.

Mine is located /usr/local/share/android-sdk/emulator/emulator but it might vary based on individual setups.

Step 2

Add a new file called emulator in the place of the original file containing the following command (or using your DNS server of choice).

#!/bin/bash
$0-original "$@" -dns-server 8.8.8.8

Step 3

Make the new emulator file executable.

chmod +x emulator

Step 4

Restart the emulator using Android Studio.


P
Phil

I've faced the very and suddenly same problem on my MAC. After having tried everything, I've finally deleted the folder /Users/Philippe/.android and create a new emulator.