1. 程式人生 > >Visual Studio Emulator for Android 折騰記

Visual Studio Emulator for Android 折騰記

多個 develop 新版本 代理 option key 折騰 最新 mac

想用虛擬機調試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 折騰記