Android Emulator 疑難排解
本文描述設定及執行 Android Emulator 時所發生的最常見警告訊息和問題。 此外,它也會說明解決這些錯誤的解決方案,以及各種疑難解答秘訣,以協助您診斷模擬器問題。 如需詳細資訊,請參閱 針對 developer.android.com 上的Android模擬器 已知問題進行疑難解答。
Windows 上的部署問題
當您部署應用程式時,模擬器可能會顯示一些錯誤訊息。 以下說明最常見的錯誤及解決方式。
部署錯誤
如果您看到有關無法在模擬器上安裝 APK 或無法執行 Android Debug Bridge (adb) 的錯誤,請確認 Android SDK 可連線至您的模擬器。 若要確認模擬器連線,請使用下列步驟:
從 Android 裝置管理員 啟動模擬器(選取您的虛擬設備,然後選取 [啟動]。
開啟命令提示字元,然後移至安裝 adb 的資料夾。 如果 Android SDK 安裝在其預設位置, adb 會位於 C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe;如果不是,請針對計算機上的 Android SDK 位置修改此路徑。
輸入以下命令:
adb devices
如果可從 Android SDK 存取模擬器,模擬器應該會顯示在連接的裝置清單中。 例如:
List of devices attached emulator-5554 device
如果模擬器未出現在此清單中,請啟動 Android SDK 管理員,套用所有更新,然後再次嘗試啟動模擬器。
MMIO 存取錯誤
若顯示 [發生 MMIO 存取錯誤] 訊息,請重新啟動模擬器。
遺漏 Google Play Services
如果仿真的 Android 裝置未安裝 Google Play 服務或 Google Play Store,您可能會建立排除這些套件的虛擬設備。 當您 建立虛擬設備時,請務必選取下列其中一個或兩個選項:
- Google API— 在虛擬設備中包含Google Play服務。
- Google Play 商店 – 在虛擬設備中包含 Google Play 商店。
例如,此虛擬裝置將會包含 Google Play Services 和 Google Play 商店:
注意
Google Play 商店影像僅適用於某些基底裝置類型,例如 Pixel、Pixel 2、Nexus 5 和 Nexus 5X。
效能問題
效能問題通常是由於下列其中一個問題所造成:
- 模擬器正在執行但未使用硬體加速。
- 使用 Arm 型映像在模擬器中執行的虛擬設備。
下列各節會更詳細地說明這些案例。
未啟用硬體加速
當您啟動虛擬裝置且未啟用硬體加速時,裝置管理員 會顯示類似下圖的錯誤對話框:
若要修正此錯誤,請遵循硬體加速問題一節中的疑難解答步驟。
硬體加速問題
使用硬體加速時,您可能會遇到設定問題,或與您電腦上的其他軟體發生衝突。 疑難解答的第一個步驟是確認硬體加速已啟用。 您可以使用 Android 的 SDK 來檢查此設定。 開啟命令提示字元並輸入下列命令:
"C:\Program Files (x86)\Android\android-sdk\emulator\emulator-check.exe" accel
此命令假設 Android SDK 安裝在 C:\Program Files (x86)\Android\android-sdk 的預設位置 。 如果 Android SDK 安裝在其他地方,請將上述命令修改為正確的位置。
提示
請確定 Android 模擬器為最新狀態。 在 Visual Studio 中,按 [工具 > ][Android > ANDROID SDK 管理員]。 選取 [工具] 索引 標籤,並查看 Android 模擬器 專案是否有 可用的更新。
不正確的 BIOS 設定
如果 BIOS 尚未正確設定以支援硬體加速,當您執行 emulator-check.exe accel 命令時,會顯示類似下列範例的訊息:
VT feature disabled in BIOS/UEFI
若要修正此問題,請讓您的電腦重新開機進入 BIOS 並啟用下列選項:
- 虛擬化技術 (視主機板製造商而定,可能會有不同的標籤)。
- 硬體強制執行的資料執行防止。
如果仍然因為與 Hyper-V 相關的問題而發生問題,請參閱下一節。
Hyper-V 問題
在某些情況下,在 [開啟或關閉 Windows 功能] 對話方塊中同時啟用 Hyper-V 和 Windows Hypervisor 平台可能會無法適當地啟用 Hyper-V。 若要確認是否已啟用 Hyper-V,請使用下列步驟:
在 Windows 搜尋方塊中輸入 PowerShell 。
以滑鼠右鍵按一下搜尋結果中的 Windows PowerShell,然後選取 [以系統管理員身分執行]。
在 PowerShell 主控台中,輸入下列命令:
Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
如果未啟用 Hyper-V,將會顯示類似下列範例的訊息,指出 Hyper-V 的狀態為 Disabled :
FeatureName : Microsoft-Hyper-V-All DisplayName : Hyper-V Description : Provides services and management tools for creating and running virtual machines and their resources. RestartRequired : Possible State : Disabled CustomProperties :
在 PowerShell 主控台中,輸入下列命令:
Get-WindowsOptionalFeature -FeatureName HypervisorPlatform -Online
如果未啟用 Hypervisor,則會顯示類似下列範例的訊息,指出 HypervisorPlatform 的狀態為 Disabled :
FeatureName : HypervisorPlatform DisplayName : Windows Hypervisor Platform Description : Enables virtualization software to run on the Windows hypervisor RestartRequired : Possible State : Disabled CustomProperties :
如果未啟用 Hyper-V 或 HypervisorPlatform,請使用下列 PowerShell 命令加以啟用:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -All
這些命令完成之後,請重新開機。
如需啟用 Hyper-V 的詳細資訊 (包括使用部署映像服務與管理工具啟用 Hyper-V 的技術),請參閱安裝 Hyper-V。
更多疑難排解提示
下列建議在診斷 Android Emulator 問題方面通常很有幫助。
從命令列啟動模擬器
如果模擬器尚未執行,您可以從命令列啟動它,而不是從 Visual Studio 內開始檢視其輸出。 一般而言,Android 模擬器 AVD 映射會儲存在下列位置: %userprofile%\.android\avd 。
您可以傳入 AVD 的資料夾名稱來使用此位置的 AVD 映像啟動模擬器。 例如,此命令會啟動名為 Pixel_API_27 的 AVD:
"C:\Program Files (x86)\Android\android-sdk\emulator\emulator.exe" -partition-size 2000 -no-boot-anim -verbose -feature WindowsHypervisorPlatform -avd pixel_5_-_api_30 -prop monodroid.avdname=pixel_5_-_api_30
此命令假設 Android SDK 安裝在 C:\Program Files (x86)\Android\android-sdk 的預設位置 。 如果 Android SDK 安裝在其他地方,請將上述命令修改為正確的位置。
檢視 Device Manager 記錄
通常,您可以檢視 Device Manager 記錄來診斷模擬器問題。 這些記錄會寫入下列位置: %userprofile%\AppData\Local\Xamarin\Logs\16.0 。
您可以使用文字編輯器來檢視每個 DeviceManager.log 檔案。