Android Emulator のトラブルシューティング
この記事では、Android Emulator の構成および実行中に発生する、最も一般的な警告メッセージと問題について説明します。 また、これらのエラーを解決するための解決策と、エミュレーターの問題の診断に役立つさまざまなトラブルシューティングのヒントについても説明します。 詳細については、「developer.android.com での Android Emulator に関する既知の問題のトラブルシューティング」を参照してください。
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 開発者サービスが見つからない
エミュレートされた Android デバイスに Google Play サービスまたは Google Play ストアがインストールされていない場合は、これらのパッケージを除外する仮想デバイスを作成した可能性があります。 仮想デバイスを作成するときは、次のオプションのいずれかまたは両方を選択してください。
- Google API - 仮想デバイスに Google Play サービスが含まれます。
- Google Play ストア- 仮想デバイスに Google Play ストアが含まれます。
たとえば、この仮想デバイスには、Google Play 開発者サービスと Google Play ストアが含まれます。
Note
Google Play ストアのイメージは、Pixel、Pixel 2、Nexus 5、Nexus 5 X などの一部の基本デバイスの種類でのみ使用できます。
パフォーマンスの問題
パフォーマンスの問題は、通常、次の問題のいずれかが原因で発生します。
- ハードウェア アクセラレーションなしでエミュレーターを実行している。
- 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 Emulator が最新であることを確認します。 Visual Studio で、Tools>Android>Android SDK Manager を押します。 [ツール] タブを選択し、Android Emulator エントリに更新プログラムがあるかどうかを確認します。
不適切な BIOS 設定
ハードウェア アクセラレーションをサポートするように BIOS が正しく構成されていない場合は、emulator-チェック.exe accel コマンドを実行すると、次の例のようなメッセージが表示されます。
VT feature disabled in BIOS/UEFI
この問題を修正するには、コンピューターを再起動して BIOS に入り、次のオプションを有効にします。
- 仮想化テクノロジ (マザーボードの製造元によって、ラベルが異なる場合があります)。
- ハードウェアによるデータ実行防止。
Hyper-V に関連する問題が原因で問題が引き続き発生する場合は、次のセクションを参照してください。
Hyper-V の問題
場合によっては、[Windows の機能の有効化または無効化] ダイアログで [Hyper-V] と [Windows Hypervisor Platform] の両方を有効化すると、Hyper-V が正しく有効化されない場合があります。 Hyper-V が有効になっていることを確認するには、次の手順を実行します。
Windows 検索ボックスに「PowerShell」と入力します。
検索結果で [Windows PowerShell] を右クリックし、[管理者として実行] を選択します。
PowerShell コンソールで、次のコマンドを入力します。
Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
Hyper-V が有効になっていない場合は、次の例のようなメッセージが表示され、Hyper-V の状態が 無効であることを示します。
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
ハイパーバイザーが有効になっていない場合は、HypervisorPlatform の状態が無効であることを示す次の例のようなメッセージが表示されます。
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 を有効化する (Deployment Image Servicing and Management ツールを使用して Hyper-V を有効化する手法を含む) 詳細については、Hyper-V のインストールに関するページを参照してください。
その他のトラブルシューティングのヒント
次の推奨事項は多くの場合、Android Emulator の問題の診断に役立ちます。
コマンド ラインから 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 が他の場所にインストールされている場合は、上記のコマンドを正しい場所に変更します。
デバイス マネージャー ログを表示する
多くの場合、デバイス マネージャー ログを表示して、エミュレーターの問題を診断できます。 これらのログは、%userprofile%\AppData\Local\Xamarin\Logs\16.0 という場所 に書き込まれます。
各 DeviceManager.log ファイルは、テキスト エディターを使用して表示できます。
.NET MAUI