Internet stopped working on Android Emulator (Mac OS)
For me the issue appears to stem from the DNS settings my company enforces.
In order to be able to get network access for my emulator I needed to launch the emulator with the same corporate dns-server specified.
I'm on a Mac, so first I checked my network settings to find what my DNS was set to:
System Preferences -> Network -> Wi-Fi -> Advanced -> DNS
Then navigated to the sdk emulator location (for convenience):
cd ~/Library/Android/sdk/emulator
Then listed the available emulators:
./emulator -list-avds
Then ran the desired emulator with dns server override:
./emulator @<emulator_name> -dns-server <dns.server.ip.address>
It would be nice if I could set this DNS to be used by emulators launched through Android Studio, but hopefully these steps help someone else in a similar position.
In Mac OS go to:
System Preferences -> Network -> select Wi-Fi os left panel -> Advanced on right panel -> DNS -> add new DNS server; for example 8.8.8.8
and 8.8.4.4
(Google Public DNS) or 1.1.1.1
and 1.0.0.1
(Cloudflare and APNIC DNS) or another public DNS provider. Then restart the emulator so the changes take effect.
Edited jun/2020
Another option is to pass dns-server params when start Android emulator.
According with this solution https://stackoverflow.com/a/51858653/3328566, I changed the emulator executable name and I created a bash script to load the AVD with param -dns-server 8.8.8.8
.
In your Android SDK default folder /Users/[MY_USER_ACCOUNT]/Library/Android/sdk/emulator/emulator
- Rename the binary
emulator
toemulator_original
- Create a bash script named
emulator
that contains:
#!/bin/bash
/Users/[MY_USER_ACCOUNT]/Library/Android/sdk/emulator/emulator_original -dns-server 8.8.8.8 $@
- Change the script permissions with
chmod +x emulator
Now, you can start AVD from Android Studio normally
In this case, you don't need to set DNS server in System Preferences. You are setting the DNS server only for the emulator, avoiding other problems