Visual Studio 2015 CTP5 Android Emulator loopback to localhost?

耗尽温柔 提交于 2019-12-19 09:23:29

问题


I am using VS 2013 to connect with the new VS2015 Android Emulator. This seems to work now and I can debug, set breakpoints etc which is all fine. (Now, I would use VS2015 but it won't deploy properly -never mind). I am also developing the server app on my machine and using Fiddler as an http debug aid.. not an uncommon situation I am sure.

The server is running (also under debug in another instance of VS 2013) using IIS Express and I have added bindings to the applicationhost.config so the IISExpress server is visible on my LAN from other PC's and I've checked it is visible.

Try as I might I can not seem to get the Emulator to send the http requests back to my computer. My javascript uses a servicebase to hold the url:

var serviceBase = 'http://192.168.2.4:64963/'; //'http://169.254.220.177:64963/';  //'http://10.0.2.2:64963/'; //'http://localhost:64963/';

The commented ones show the ones I have tried. None of these works.. the first is the IP of my machine on the LAN, the rest are various ones I have picked up here or the Android dev site.. I have also tried:

http://mymachinename:64963

Because I am bringing both web AND API services from this URL I have also tried a chrome browser on my real android phone (over wifi on my LAN) and this can't get to my dev machine either (where my other pc's can). So I get that it probably can't resolve the names? But really not sure where to go next? I wondered about the Hosts file on my PC but not sure if I can/should set an IP address as a host name? .. any pointers? Thanks, Brett


回答1:


169.254.80.80 is the localhost loopback.

By going to Additional Tools in the VS emulator for Android (click the >> button on the right hand side) and selecting the Network tab, you will get all the information about the network connectivity.

For the localhost loopback, use the address listed under the Desktop Adapter #2. Desktop Adapter #1 should work as well, which is the IP address of your machine.




回答2:


I am answering this because I have seen a lot of comments/questions about this topic and need to include some bits that it is hard to fit in the comments.. and I have solved it. First the solution.. was to delete/replace the vsemu.vhd and vsemu.sdcard.vhd for the emulator with safe copies. This was because in my efforts to fix the problem I assume I had changed some setting in the emulator phone data. Sadly I am not sure what.

However, and this checklist may be useful to someone, before this I was led to it by the fact that because I had web services as well as API from my server URL I was able to test webpage access. This worked on pcs but failed on wifi connected android devices on my network with pc names.. as mentioned in my original question. But it wouldn't work with a numeric IP address either.

I had already added the numeric IP to the applicationhosts.config file of IISExpress, but what I hadn't done, because I thought its on the machine its referring to, was execute the

netsh http add urlacl url=http://192.168.2.1:94693/ user=everyone

command to let it all through. Once I had done this, I was able to connect using the IP address from a phone, and this led me to discover that the Emulator had obviously got some form of problem. Replacing the VHD's fixed this and I am now communicating.




回答3:


In case anyone else has this issue using the following IP's worked for me:

  1. IP of the machine
  2. 169.254.80.80

However, do remember that VS Android emulator is running in a Hyper-v VM, So I had to punch a hole in my firewall to allow for my application port to be reached by the emulator.

If your using Web API with visual studio 2015 and VS Android emulator this link helped me out a lot




回答4:


Use 10.0.2.2, This is the loopback from emulator to your host machine.

See link: http://developer.android.com/tools/devices/emulator.html




回答5:


I was having the same issue, but none of the above answers were useful for me.

My BackEnd is a PHP SlimFramework Rest Api.

I decided to change the IP in the auto start of the Slim (was localhost:7888), I tried this: php -S 192.168.43.20:7888, and everything was working fine after I configure the calls to that ip.

I hope this may help someone...




回答6:


In generic the IP you must consider is the IP of the network you are using/allocated to run the android emulator. Very raw/rude method of finding it is by going to settings (gear symbol on right panel of emulator, not the one inside) and look for ip address. . Or by opening the ADB Logging window and it's on the top left corner.

Now in command prompt type ipconfig and match the first 3 numbers of IP and that's the network your localhost loopback.

Because in many cases we will have more than one ethernets or virtualbox host only networks are running.

Happy Coding!!



来源:https://stackoverflow.com/questions/28262276/visual-studio-2015-ctp5-android-emulator-loopback-to-localhost

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!