As the title says, my VS Android Emulator has no connection to the internet. In the Android screen, it says it's connected to WiFi, but browsing doesn't work.
Expect the problem is I am running Windows 10 in Parallels on my MacBook, but I don't know how to fix it. Windows "thinks" it's connected to ethernet.
My adapter settings in Windows look like this:
Hyper-V network settings for my emulator:
Network settings in Parallels is set to Bridged Network WIFI
Try enabling Enable Virtual LAN Identification from your Hyper-V Network settings screen. If that doesn't work, you may try changing the switch and VLAN IDs until it works.
Microsoft recently announced a release of VS for Mac. That will be a far more user friendly option or even better go straight for the gold and use Android studio 2. You really shouldn't have to run Parallels at all for what you are trying to do, and this is what is ultimately giving you problems in the first place. Even if you do solve this internet issue there will most likely be another issue that crops up and there are enough problems to deal with devving as it is.
Related
Goal: Test android app on a physical device with various network connectivity issues (Offline, Slow 3G etc). Android Emulator is not an option for my use case.
Steps I have tried: (Remote Debugging)
Connect my phone to my computer and open the app on my phone.
In chrome "Remote devices" I select my phone and click on inspect for the app opened on my phone. Once the Developer Tools window opens I can play with my app from chrome.
In the network tab I can see the throttling options but when I try the offline option or any other option to slow down the network it does not seem to work.
The offline/slow 3G option works for a normal website but not when using remote devices. I wanted to see if anyone has tried this option before and if it worked for them and I would appreciate suggestions for better alternatives to test an android app with various network settings other than using chrome remote devices?
Other options I have come across are installing a proxy app on PC/Mac and configure networking throttling in the app and then create a wifi hotspot and connect my phone with it. This is possible but it would be tricky with the tools we use so I was looking for a more elegant solution.
The "remote devices" of chrome won't affect your native app. It will not even affect another opened tab other than the one you are "inspecting" and throttling. If you really need to throttle your device's network connection you should use a proxy. A good and easy to handle proxy is Charles web debugging. The free version will cover your needs if you are willing to reconnect every 30 mins. But for sure I recommend you purchase a license since this tool will be always helpful and developers also need to make a living ;)
Here is an example of setting up Charles as a proxy for an android device.
It's a little unclear from your question, but I'm assuming that you're using Remote Debugging to run a webpage on an Android device, and you want to profile the webpage from a laptop/desktop connected to the Android.
One workaround is to use https://www.webpagetest.org/easy. This actually runs your webpage on a real Motorola G device in Virginia with a Slow 3G connection. It gives you a detailed report on your loading performance, just like the DevTools Performance panel.
One of the DevTools team members said that Remote Debugging + Network Throttling should work, but neither of us has tried it recently.
I'm using Android Emulator that comes with Visual Studio 2015. When I run it, in Wi-Fi settings of Android this status appears Obtaining IP Address.. for Wired eth1 network. But it fails after a long time.
What I've tried:
Removed all the virtual switches in Virtual Switch Manager of Hyper-V before running the emulator.
Unchecked automatic detect settings in proxy settings
Tried different API levels (19,22,..)
Windows Phone Emulator doesn't have this problem and has internet connection.
Restarted my PC!
What I guess:
When I diagnose vEthernet (Internal Ethernet Port Windows Phone Emulator Internal Switch) it says it has an invalid IP address. Also inside android emulator it tries to obtain an IP. Obviously I need to give the emulator a valid IP, but I don't know how or where or what value.
How to give the Android emulator internet access?
Thanks in advance.
It looks like Android is unable to acquire an IP address from DHCP.
In Hyper-V Manager (virtmgmt.msc), select the VM for the emulator profile you are trying to start and go to its Settings... (right click for context menu or see action pane on right side).
Under Hardware, make sure there are two virtual switches:
Emulator Internal Network Adapter
Emulator External Network Adapter
Emulator External Network Adapter must be listed as the second adapter -- the order matters. If they are ordered incorrectly, delete the External adapter and recreate it, giving it the same settings it had before. You can create it by clicking Add Hardware in the VM's hardware list.
I fixed it by setting the second network adapter to Default switch and not the physical network adapterScreen Grab.
Thought this might help someone out there. Mine had an internet connection, but suddenly it stopped connecting. I resolved it by restarting my emulator with factory settings.
For me adding an external adapter for each physical one (lan/wifi) worked but only when the virtual LAN identification was unchecked on each of them.
For unknown reasons by default my second adapter was set to VirtualBox Host Ethernet
I've changed it to Intel Dual Band and now all works even without emulator restart!
I create a blank cordova application in visual studio 2015 and start debugging with the visual studio android emulators (first with the lollipop and then kitkat). XDE starts and the screen displays OS is starting.... It stays like that for quite a while until it displays
The emulator is unable to connect to the device operating system;
The device did not response to the connect request.
Some functionalities might be disabled'
After closing the dialog, it stays there forever until I kill the emulator. Killing the emulator triggers an error from visual studio.
Could not start emulated device 'VS Emulator Lollipop Phone'.
When I open hyper-v, I see the vm in the list and shown as running. When I connect, I see the console screen as below
I know this issue has been around for a while now, but I have just found a new solution for people who may still encounter this issue...
I had the same issue (stuck on "OS Is Starting") for API v 21 & 22. API v23 images would start, but could not debug - the app would crash as soon as it launched.
The following fixed the issue:
Shut down the emulator
Open Hyper-V manager
Go to the settings for the Android Image
Expand the "Processor" configuration node
Go to the "Compatibility" node
Check the "Migrate to a physical computer with a different processor version" option
Apparently it has something to do with newer Processor architectures being incompatible with the Android images or something like that - don't really care, as long as it works :)
I was running into the same issue. I did try to disable OpenGL by deleting: GuestDisplayProvider = "VsEmulator.OpenGLGuestDisplay" in xdesku.xml, as suggested in other answers.
At first, the virtual machine would boot up (you could connect to it from Hyper-V manager), but the emulator window itself would not connect to the machine (stuck on "OS is starting", then failing after a looooong while with the following message: "The emulator is unable to connect to the device operating system: Couldn't auto-detect the guest system IP address. Some functionality might be disabled.")
This answer https://stackoverflow.com/a/31698124/1010492 and that one https://stackoverflow.com/a/14402740/1010492 helped me solve the connectivity issue, and I was able to have the Virtual Machine displayed inside the emulator window.
However, the emulator wasn't working properly (scaling issues, no Home, Back, etc. buttons) until I put back the line "VsEmulator.OpenGLGuestDisplay" and after removing my profiles and rebooting a number of times.
To sum up, if you are encountering the same issue on an Hyper-V enabled computer, you may want to try the --over conscious-- following steps:
Ideally, uninstall any other Virtualisation software such as VMWare, Virtual Box and VPN clients such as Cisco VPN (if you cannot
do that, please be vigilant at step 13)
Reboot
In the "Visual Studio Emulator for Android" dialog, delete all installed device profiles
Remove All Hyper-V virtual switches - go to Hyper-V > Virtual switch manager > Remove all virtual switches
Run XdeCleanup.exe (usually in "C:\Program Files (x86)\Microsoft XDE\10.0.10240.0")
Also remove any extra virtual network adapters left in "Control Panel > Network and Internet > Network Connections" (after following
the previous steps, you should normally be left with only physical
adapters)
Make sure Network Sharing is disabled on all network adapters (right click, Properties, Sharing, untick "Allow other network users
to connect through this computer's Internet connection")
If ever you deleted the line GuestDisplayProvider="VsEmulator.OpenGLGuestDisplay" in xdesku.xml
(usually in "C:\Program Files (x86)\Microsoft
XDE\10.0.10240.0\SKUs\Android"), NOW IS A GOOD TIME TO PUT IN BACK.
Reboot
You may want to try to repair the emulators: go to Programs and Features > Microsoft Visual Studio Emulator for Android > Change and
hit "Repair" (although I have to say this always fails for me)
Reboot
Open the Visual Studio Emulator for Android, and install then run one of the profiles (eg: 7'' KitKat (4.4) XHDPI Tablet -- Similar to
Asus Google Nexus 7)
It may already work, but if not you should make sure that your network adapters are setup properly. Stop your emulator, then Go to
Control Panel > Network and Internet > Network Connections, and right
click the vEthernet adapters, then Properties and make sure you only
have the following boxes ticked in the Networking list (as explained
in Interference from other virtualization or networking software and
drivers: Client for Microsoft Networks, QoS Packet Scheduler, File
and Printer Sharing for Microsoft Networks, Microsoft LLDP Protocol
Driver, Link-Layer Topology Discovery Mapper I/O Driver, Link-Layer
Topology Discovery Responder, Internet Protocol Version 6 (TCP/IPv6),
Internet Protocol Version 4 (TCP/IPv4)
Reboot
Try to start the emulator again in "Visual Studio Emulator for Android"
If it still doesn't work, try to delete and recreate the profiles, and loads of reboots...
There are probably some redundants steps here, but I think it covers everything you should try (the key seems to be making sure that the network adapters are setup properly). If I've missing some things or if you think some steps are useless, please comment.
After alot of searching I got this working. Hope this helps. I found it in the comments on MSDN Article for Android Emulator with Visual Studio 2015
The new images might work if you disable OpenGL by going to Program Files (or Program Files x86 if you're on a 64-bit machine) \ Microsoft XDE \ 10.0.0.0 \ SKUs \ Android \ xdesku.xml and deleting this line: GuestDisplayProvider = "VsEmulator.OpenGLGuestDisplay". However, without OpenGL turned on you will not be able to take advantage of many of the new features
On my system I got it working again after enabling the disabled vEthernet (Internal Ethernet Port Windows Phone Emulator Internal Switch) again.
I didn't have to reboot.
I went through the steps in #Gyum Fox answer and still no joy for me.
While the Visual Studio Emulator for Android creates the first emulator instance, several virtual network switches are also created. For a laptop, typically three vEthernet instances are created; one for the wired LAN, one for the Wi-Fi, and another internal virtual switch for guest to host connections.
In my case, the vEthernet for the wired LAN was created successfully and then the Visual Studio Emulator for Android process would hang. This is observable from the Hyper-V Manager and the Virtual Switch Manager action.
Using the Virtual Switch Manager I successfully created the missing Wi-Fi virtual switch with these steps. Well, ultimately it worked. Read on.
Under the Virtual Switches list, select New virtual network switch…
Under What type of virtual switch do you want to create?, select External.
Under the External network: drop-down, select the Wi-Fi adapter.
Click the Create Virtual Switch button.
Change the Name: to match the name of your Wi-Fi adapter.
Click the Apply button.
In my case though, after clicking Apply, a failure message indicated the Wi-Fi adapter was bridged. Hmmm.
I started the View Network Connections control panel applet and the Wi-Fi adapter did not show it was bridged. (When a network bridge exists, the Status column has the word Bridged appended.) I suspect there was some dusty digital bits lurking somewhere in the registry.
Here is what cleared the issue for me.
Right-click on the Wi-Fi device.
Select Add to Bridge.
Right-click on the Wi-Fi device, again.
Select Remove from Bridge.
Now, go back up to the steps to create the virtual switch for the Wi-Fi network. The steps should complete successfully now.
And now, you can go back to creating the Android emulators you want.
One final thought… If you aren’t seeing any virtual switches being created, I suspect that could mean the wired LAN might have the dusty digital bits hanging you up. In that case, I’d try add-and-remove-from-bridge trick on the wired LAN adapter to see if that clear things up for you.
And, now I suppose that just doing the add-and-remove-from-bridge trick on the network adapter without creating the virtual switch might suffice. For me, the creation of the virtual switch was proof that the issue was corrected. YMMV ;-)
I found my issue was related to the windows firewall with some enterprise policies my company applied to all PCs. Once I stopped the Windows Firewall service it worked just fine.
I also had this issue and it was not just for android emulators but for all windows phone emulators.
This is what i did to fix the issue
Uninstall the Genymotion and Virtual Box (I had these in my system and this did not solve the issue)
Removed all Virtual adapters. this is the tricky part. None of adapters could not delete from Hyper-V virtual Manager. I had to use powershell and run
remove-vmswitch -Name "The name of V Adapter" -force
Also, from this I was not able to delete all the adapters and I found this link "https://social.technet.microsoft.com/Forums/windowsserver/en-US/e49df568-4f4c-47b7-b30c-952d1e26ca58/cant-remove-failed-virtual-switch-from-hypervs-virtual-switch-manager?forum=winserverhyperv" and deleted all virtual adapters
reboot the computer
After this there was not any v adapters in Hyper-V virtual Manager
Run the XdeCleanup.exe (just in case)
Also, I disabled the firewall from my virus guard
After this I was able to run the emulator from "Visual Studio Emulators for Android"
I'm adding a separate answer though the insight provided by Gyum Fox provided the clues I needed to try other stuff ...
[NOTE: The last time I was able to use the emulators (~3 weeks ago) I had wireless disabled and was using a wired connection on my Dev laptop. I ran out of space on my switch so re-enabled the wireless as the sole connectivity option. This may be totally coincidental, but read on and I'll let y'all decide.]
After following Gyum's steps without success, I decided to turn off the wireless and then try launching the emulator.
Wouldn't you know it ... it worked without an issue! 8-}
Once I had the emulator running, I re-enabled the wireless and the emulator picked up the connectivity.
I'm not a network guy so I'm not even gonna attempt to understand. It's a minor PITA but hey ... if it works!!! ;-}
On my machine I could start the emulator but I got an OpenGL error when trying to deploy and debug. I realized my issues started after I installed Docker. On a whim I decided to shut down Docker and disable the vEthernet (DockerNAT) Network Connection. This fixed my issue. Now, whenever I need to use the Andoird emulator I have to shut down Docker. Then when I'm done debugging I enable/restart Docker.
One of the reason I was having this issue is that I did not install the Android SDK on the default location. So I had to follow these instructions in order to be able to debug my application: https://msdn.microsoft.com/en-us/library/mt228282.aspx#ADB
I had to create the folder "Android SDK Tools" and add the Key "Path" with the value to my SDK, which in my case it was "E:\Android\Android_SDK"
I've installed genymotion about 2 days ago and I've been facing the same problem every time I tried to start a device.
After I downloaded a device in genymotion (Nexus S - 4.2.2 - API 17 - 480*800) I launched it.
Then after a box poped up telling me I have to wait, I got this error:
The virtual terminal genymotion didn't get an ip address. For an
unknown reason the virtualbox's dhcp servor didn't assign an ip adress
to the virtual terminal. Please launch virtualbox to find a solution
to this problem
I can't figure out how to solve this problem.
I looked up on many websites but it seems as if I'm the only one to get this error.
I'm on Windows XP-SP3.
My graphic card is a radeon HD 3600 driver up to date.
Does anyone have any idea?
Thank you.
Try downgrading to Virtual Box 4.2.18, if you are using 4.3.X.
I had a similar situation to yours.
I was using Genymotion 1.3.0 on Win7, with latest Virtual Box 4.3.2. Genymotion broke down after a computer shutdown, and never worked again.
I kinda stumbled onto this solution. After downgrading, Genymotion survived one shutdown now.
All Android VMs used to work for me under Genymotion 2.0.0. with default RAM and CPU settings and VirtualBox 4.3.2 (on ubuntu 13.10). Upgrading to 2.0.1 made them stop working and give the error you mentioned.
I tried various fixes as I described here: https://stackoverflow.com/a/20018833/2527118, but in summary what fixed my problem was to delete VM and recreate it (same source and settings) in GenyMotion. You might want to try the other fixes (less destructive) before doing that.
Andrei
I try to solve this for 6 days and in the end, I realized I needed to uninstall then re install virtual box so I can get their default settings then change my network settings as explained better in this link. It explains in depth how the ip address works with the virtual machine, and how the chances of it trying to use a static ip address are very likely.
https://askubuntu.com/questions/232876/how-to-let-a-virtualbox-guest-running-windows-access-the-internet
let your network settings be handled by themselves if you've tried everything, maybe this will allow your VM to use its own IP address and stop trying to use your Physical devices IP address.
Hope this helps.
I had the problem with the IP error, too. As I have a real Samsung Galaxy S2, I downloaded the vitual version 2.3.7 Api 10 in Genimotion. All IP settings were correct, the sequence of starting the programms didn`t matter. The IP error reoccured :( .
Finaly, I tried to use another virtual device: Custom Tablet 5.1.0 API 22. It loaded and worked, but very slow. WhatsApp got stuck on the installation process :( . As this article on Heisse.de recomended to use the Nexus S 4.1.1 for WhatsApp, I tried this third vitual device and everything worked fine :) !
http://www.heise.de/download/special-whatsapp-auf-pc-mac-und-linux-nutzen-152241.html?hg=1&hgi=3&hgf=false
I know this post is old. But my answer is just for someone who google this issue and hopefully it may help them since I also stuck on it for a long time and fix it fortunately.
This is my way to fix the problem:
First of all, I had configured all the settings what the people said on the internet like the following link: Not able to start Genymotion device
I found that it's still failed to run the VM on GenyMotion.
So I tried to remove all the existing Host-only Network like vboxnet0 or vboxnet1(According to the official website of GenyMotion, it said that it will regenerate a new one when there is no any vboxnet)
Finally, I tried to restart the VM on GenyMotion, suddenly I run it successfully without any errors message
Notes: I disabled the adaptor 2, 3 and 4 before I was gonna tried the above actions.
As other have said, you have to install Virtual Box. In my case (using Ubuntu 16.04), I had to enable the 'virtualization' in Bios. Once that was setup, I was able to set the 'OS' to use 'Ubuntu 64bit' in 'settings/general' tab.
Other possible solutions include, configuring Virtual Box further, including reducing the RAM usage (in settings), in 'Network' tab in settings, under 'advanced' options, disabling the 'cable connected' option & setting 'Promiscuous mode' to 'allow all'.
IN case a Genymotion device cannot obtain an IP address any more, you might want to check the configuration in the VM-Ware settings: I got this fixed by removing the "promiscous mode" from the network adapter 1 settings - see screenshot.
The promiscous setting may lead to difficulties in obtaining an IP address in the genymotion simulator
I am trying to develop an wifi peer to peer application in android(4.+).
The problem here is how to test it.
I tried to run that application in android emulator. there was no option to configure wifi in the settings menu, i also tired to enable wifi using the dev tools application form the emulator but it didn't work, And through all my googling over 3 days and i found that Android emulator is not supported the Wifi.
So i opted for androidx86 4.0eeepc using virtual box and tired to add devices both wifi and bluetooth (my app uses both bluetooth and wifi) but only bluetooth device got added and it did not work. But my virtual box detected the wifi and bluetooth devices. I just couldnt get them work with the virtual machine.
I tried everything like manually adding the addresses using terminal emulator app in androidx86 and used netcfg through the android commandline but neither of them worked.
Please suggest and guide me on the correct path to run these kind of applications that use wifi and bluetooth in android.
Thanks in advance.
First, be sure you enabled WiFi Direct in the Android settings for the two virtualbox instances:
Settings --> Wireless & Networks --> More... --> Wi-Fi direct
It has been stated as working once that hurdle was overcome, and I'm sure many have experienced the same...just be sure to enable wifi direct
I would have tried exactly what you've already tried by naturally moving from the emulator to the androidx86 project. Although unreliable, I'd recommend looking at and finagling this, if you haven't yet seen it: Android: Simulate WiFi in the emulator? and How to disable/enable network, switch to Wifi in Android emulator? most likely wouldn't have full out success but may be enough to let you know that it works or would work.
As far as testing WiFi-Direct/WiFiP2P without you yourself having a device/s, I would recommend:
Trying out some of the fiddling as mentioned above. And read through tons of logs.
You could always crowd source it to friends, or release an apk on a forum for a small group of testers.
Of course, both of those options are not ideal, seamless, or fast. So, I'd definitely hope you get VirtualBox VMs of AndroidX86 4.0 running as it should once you check that setting and pair up the WiFi APs :-)
A near future solution:
This might be something to look into in near future.
Real devices are hosted by Samsung and screens are streamed to your PC.
http://developer.samsung.com/remoteTestLab.do
According to an email responded by samsung, which I sent to them earlier.
They only have 2 devices (Galaxy Nexus) running on Android v4.0 at the moment.
Unfortunately they are not physically close to each other. (One in Korea, One in Poland)
But they are planning to upgrade existing Galaxy S2 to v4.0.
Because recently Samsung have released v4.0 upgrade for S2.
Once they done that, there will be plenty of v4.0 phones.
And you can ask them which 2 phones are physically close so you can test Wifi Direct.
--------------------------- EDIT ---------------------------------
There are plenty of ICS devices there now, which you can test P2P.
Check with them which 2 are physically near to each other.
Per the docs:
Each instance of the emulator runs behind a virtual router/firewall
service that isolates it from your development machine's network
interfaces and settings and from the internet.
You have to use Network Redirection, as described in the Developer Docs. In essence, you forward specific ports using ADB. Therefore you cannot test certain things like broadcast messages.
I have tried doing what you are trying to do, and-- while I won't say it is impossible (anything is possible in computing with enough time, money, and persistence)-- I wasted a lot of time on it. You cannot treat the Android emulator as a normal network peer-to-peer device. As far as I have been able to find, it is a fork of QEMU, and that is just how the QEMU emulator is implemented.
QEMU itself does support TUN/TAP bridging, but I was never able to get it working with the Android emulator. If you want to go that route, you may want to investigate running Android in the QEMU emulator, rather than in the SDK's emulator (I see you are already trying a similar approach with VirtualBox).
Unfortunately the best way to test a peer-to-peer networking program in Android is with physical devices at this time-- unless your app can suffice with the port forwarding method.
See Also: Issue 26:Emulated Androids should be able to communicate via TCP, and Google
(Repeating here my answer elsewhere.)
In theory, linux (the kernel underlying android) has mac80211_hwsim driver, which simulates WiFi. It can be used to set up several WiFi devices (an acces point, and another WiFi device, and so on), which would make up a WiFi network.
It's useful for testing WiFi programs under linux. Possibly, even under user-mode linux or other isolated virtual "boxes" with linux.
In theory, this driver could be used for tests in the android systems where you don't have a real WiFi device (or don't want to use it), and also in some kind of android emulators. Perhaps, one can manage to use this driver in android-x86, or--for testing--in android-x86 run in VirtualBox.