想用虚拟机调试Android项目,于是想到了MS免费提供的 Visual Studio Emulator for Android,这玩意价格免费量又足,N久之前试用过,速度杠杠的!

安装包很小,不到40MB,很快就下载好了。由于以前玩过,知道这货依赖Hyper-V,于是先到系统功能中把Hyper-V装上,两次重启才完成。然后开始安装VSEMU,竟然安装不了,提示“The file or directory is corrupted and unreadable”,好像是安装包的问题。于是打开Chrome从MS官网又下载了一份,好在安装包不大,一会儿就下完了。再次安装,还是同样的错误!真崩溃!从回收站找出来上一个安装包,比对了一下两个文件,确认二进制相同,说明安装包没问题,应该是系统的问题!然后查安装日志,找到一处“MUX: ERROR: Could not load file or assembly 'Microsoft.VisualStudio.Utilities.Internal.Net35 ... '”,感觉是这个问题,又往这个方向挖了半天,依然没有解决!此处略去1000字,反正是各种折腾,最后感觉可能还真是下载的文件是坏的,于是把文件URL复制到迅雷里下载一份安装试试,果然好的!安装一切顺利!这个时候我的心里一万匹草泥马在狂奔!不知道到底是移动宽带的问题,还是Chrome浏览器的问题,同样的URL居然下载到的文件是坏的!浪费我宝贵的时间!

装好之后打开、启动虚拟机,启动正常,没问题!打开浏览器,发现不能上网,于是关掉虚机,到网络适配管理中找到虚拟网卡,把IP地址改为本地LAN的分配地址,然后再启动虚拟机,完蛋!启动不了了!然后又开始各种折腾,怎么都不能启动了,老外网站上说找到这个文件“C:\Program Files (x86)\Microsoft XDE\10.0.10586.0\SKUs\Android\xdesku.xml”,删除这一行:GuestDisplayProvider="VsEmulator.OpenGLGuestDisplay",试了根本没效果,还尝试了很多其它的方案,基本都没用!最后才发现是网络设置的问题,有个老外的贴子说是配置了多个内网或多个外网虚拟路由的原因,但我没有配置,应该就是我修改IP地址的原因,于是到Hyper-V管理器中删除所有虚拟网卡、路由和VSEMU的虚拟机,然后在VSEMU里再次启动虚机,它自动创建了相应的虚拟网卡,虚机也启动成功!后来发现只要添加一个External的虚拟网卡,然后Hyper-V的虚机设置里选择这个网卡,虚机就能正常上网了!

接下来开始折腾hosts的问题,由于本机调试的项目是通过hosts中配置的伪域名访问的,也要修改虚机的hosts,看网上的方法说可以通过如下方法修改:

adb remount
adb pull /system/etc/hosts
vi hosts # 修改好对应内容
adb push hosts /system/etc

有点小激动,结果第一步adb devices 就没有找到虚机,很郁闷。于是继续上网搜索相关解决方案,发现需要配置Android SDK Tools:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Android SDK Tools
Path="C:\\Program Files\\android-sdk" (目录中要有platform-tools,试了一下tools和platforms好像都不需要)

这样在启动vsemu之后就能 adb devices 列出设备了,也能 adb操作了。

附1:

Android SDK Tools 下载地址 https://developer.android.com/studio/index.html
最下面:仅获取命令行工具
点击下载 sdk-tools-windows-3859397.zip

Android SDK Platform-Tools 下载地址(也可以通过上面下载的 SDK Tools 下载 Platform-Tools)
https://developer.android.com/studio/releases/platform-tools.html
点击下载 SDK Platform-Tools for Windows

注:这两个都可以通过使用迅雷实现高速下载,官方地址直接下载太慢了!

附2:

Android SDK Manager 代理设置
(最新版本的SDK Manager 好像已经没有GUI界面了,只能命令行操作,只有又大又笨的 Android Studio 里带GUI管理工具)
Tools => Options... => Android SDK Manager - Settings
HTTP Proxy Server 设为 mirrors.neusoft.edu.cn
HTTP Proxy Port 设为 80
勾选“Force https://... sources to be fetched using http://...”,然后返回主界面,选择Packages => Reload 即可。

Visual Studio Emulator for Android 折腾记的更多相关文章

  1. Visual Studio Emulator for Android 初体验

    Visual Studio Emulator for Android已经推出一段时间了,但一直没有用过.前两天下载安装用了下,整体感觉比谷歌自带的模拟器强多了.Visual Studio Emulat ...

  2. [Android] Visual Studio Emulator For Android 相关

    1.修改设备名 C:\Users\[用户名]\AppData\Local\Microsoft\VisualStudioEmulator\Android\Containers\Local\Devices ...

  3. 2.[WP Developer体验Andriod开发]Andriod Studio结合Visual Studio Emulator for Android调试Android App

    0. 工欲善其事必先利其器 上一篇博客对比了一下Android和WinPhnoe的布局容器,后续篇章重点放在Android的开发上了. 说到开发就绕不开调试程序,调试Android App我们有2种选 ...

  4. Win10安卓模拟器Visual Studio Emulator for Android使用简介(转)

    Visual Studio Emulator for Android是微软官方发布的独立版本的安卓模拟器,这款软件可以让安卓应用开发者更加轻松的用Visual Studio编写Android应用,据说 ...

  5. Adb connect监听指定的主机和端口/Adb监听Visual Studio Emulator for Android模拟器

    语法: adb connect <host>[:<port>] 使用实例: adb connect //如果连接成功则返回 connected to 说明 在使用Visual ...

  6. 2.[Andriod]Andriod Studio结合Visual Studio Emulator for Android调试Android App

    0. 工欲善其事必先利其器 上一篇博客对比了一下Android和WinPhnoe的布局容器,后续篇章重点放在Android的开发上了. 说到开发就绕不开调试程序,调试Android App我们有2种选 ...

  7. Visual Studio Emulator for Android 的安装与使用 感觉最干净好看的模拟器.

    Step1 win8+ 6G+ 添加删除程序\ hyper  创建虚拟机 安装visual studio android 模拟器, 自带三个模拟器 使用管理员打开模拟器 参考文献 Visual Stu ...

  8. VS2015 使用 Visual Studio Emulator For Android 调试无法命中断点的解决办法?

    源解决方案是英文版的,地址:https://dzone.com/articles/fix-for-could-not-connect-to-the-debugger-while-de 问题现象: 1. ...

  9. Visual Studio Emulator for Android 里面的安卓模拟器如何启用

    打开软件

随机推荐

  1. 基于FPGA的VGA显示设计(一)

    前言 FPGA主要运用于芯片验证.通信.图像处理.显示VGA接口的显示器是最基本的要求了. 原理 首先需要了解 : (1)VGA接口协议:VGA端子_维基百科 .VGA视频传输标准_百度 引脚1 RE ...

  2. PHP:substr和mb_substr的区别

    substr和mb_substr函数都是获取字符串中的某个部分 那么,它们的区别在哪儿呢? 区别: substr :全部是英语.数字就正常:但有一些的字元是占用多个位元的,substr()就得不到你预 ...

  3. QR分解与最小二乘(转载自AndyJee)

    转载网址:http://www.cnblogs.com/AndyJee/p/3846455.html 主要内容: 1.QR分解定义 2.QR分解求法 3.QR分解与最小二乘 4.Matlab实现 一. ...

  4. (转载)arcgis for js - 解决加载天地图和WMTS服务,WMTS服务不显示的问题,以及wmts服务密钥。

    1 arcgis加载天地图和wmts服务 arcgis for js加载天地图的例子网上有很多,这里先不写了,后期有空再贴代码,这里主要分析下WMTS服务为什么不显示,怎么解决. 条件:这里的WMTS ...

  5. 是否应该提供一个dao.insertIgnoreNull ? (像updateIgnoreNull一样)

     是否应该提供一个dao.insertIgnoreNull ? (像updateIgnoreNull一样)  发布于 406天前  作者 SayingCode  153 次浏览  复制  上一个帖子  ...

  6. react里面 react-router4 跳转

    在react里面跳转的时候,一般可以用 <Link to='/tradeList' /> 但是我们在运用组件组合的时候经常会通过传参去判断,如果props传过来是参数,如果有link进行跳 ...

  7. 2017.10.3 JDBC访问数据库的建立过程

    1·JDBC访问数据库,其访问流程: (1)注册驱动 (2)建立连接(Connection) (3)创建数据库操作对象用于执行SQL语句 (4)执行语句 (5)处理执行结果 (6)释放资源 2·注册驱 ...

  8. Java +安卓 定时任务

    1.android 自带闹钟定时任务 安卓闹钟可以配合广播来实现(不推荐),系统资源浪费,安卓系统在5.0以后的定时 任务貌似触发时间不准了,因为了为了省电. //获取系统闹钟 AlarmManage ...

  9. 理解 JavaScript 作用域(转)

    简介 JavaScript 有个特性称为作用域.尽管对于很多开发新手来说,作用域的概念不容易理解,我会尽可能地从最简单的角度向你解释它们.理解作用域能让你编写更优雅.错误更少的代码,并能帮助你实现强大 ...

  10. 重新认识下数组的concat方法

    最近在学习react,看官方文档的时候,有一个例子中的一句话让我困惑.就是讲todoList的例子 concat不是连接数组的吗?看了一下concat的介绍 数组虽然是对象类型,但是对象毕竟不是数组啊 ...