Android Emulator のトラブルシューティング

この記事では、Android Emulator の構成および実行中に発生する、最も一般的な警告メッセージと問題について説明します。 また、これらのエラーを解決するための解決策と、エミュレーターの問題の診断に役立つさまざまなトラブルシューティングのヒントについても説明します。 詳細については、「developer.android.com での Android Emulator に関する既知の問題のトラブルシューティング」を参照してください

Windows での展開に関する問題

アプリを展開するときに、エミュレーターによっていくつかのエラー メッセージが表示される場合があります。 ここでは、最も一般的なエラーと解決策について説明します。

配置エラー

エミュレーターでの APK のインストールの失敗、または Android Debug Bridge (adb) の実行の失敗に関するエラーが表示された場合は、Android SDK がエミュレーターに接続できることを確認してください。 エミュレーターの接続を確認するには、次の手順を実行します。

  1. Android デバイス マネージャーからエミュレーターを起動します (仮想デバイスを選択し、[スタート] を選択します)。

  2. コマンド プロンプトを開き、adb がインストールされているフォルダーに移動します。 Android SDK が既定の場所にインストールされている場合、 adbC:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe にあります。インストールされていない場合は、コンピューター上の Android SDK の場所に合わせてこのパスを変更します。

  3. 次のコマンドを入力します。

    adb devices
    
  4. Android SDK からエミュレーターにアクセスできる場合は、接続されているデバイスの一覧にエミュレーターが表示されます。 次に例を示します。

    List of devices attached
    emulator-5554   device
    
  5. エミュレーターがこの一覧に表示されない場合は、Android SDK マネージャー起動し、すべての更新プログラムを適用してから、エミュレーターをもう一度起動してみてください。

MMIO アクセス エラー

MMIO アクセス エラーが発生しました」というメッセージが表示されたら、エミュレーターを再起動します。

Google Play 開発者サービスが見つからない

エミュレートされた Android デバイスに Google Play サービスまたは Google Play ストアがインストールされていない場合は、これらのパッケージを除外する仮想デバイスを作成した可能性があります。 仮想デバイスを作成するときは、次のオプションのいずれかまたは両方を選択してください。

  • Google API - 仮想デバイスに Google Play サービスが含まれます。
  • Google Play ストア- 仮想デバイスに Google Play ストアが含まれます。

たとえば、この仮想デバイスには、Google Play 開発者サービスと Google Play ストアが含まれます。

Android Device Manager with Google Play Services and Play Store enabled for .NET MAUI.

Note

Google Play ストアのイメージは、Pixel、Pixel 2、Nexus 5、Nexus 5 X などの一部の基本デバイスの種類でのみ使用できます。

パフォーマンスの問題

パフォーマンスの問題は、通常、次の問題のいずれかが原因で発生します。

  • ハードウェア アクセラレーションなしでエミュレーターを実行している。
  • Arm ベースのイメージを使用してエミュレーターで実行されている仮想デバイス。

以降のセクションでは、これらのシナリオについて詳しく説明します。

ハードウェア アクセラレーションが有効になっていない

仮想デバイスを起動し、ハードウェア アクセラレーションを有効にしていない場合、デバイス マネージャーは次の図のようなエラー ダイアログを表示します。

Android device manager warning about Hyper-V not enabled on .NET MAUI.

このエラーを解決するには、「ハードウェア アクセラレーションの問題」セクションのトラブルシューティング手順に従います。

ハードウェア アクセラレーションの問題

ハードウェア アクセラレーションを使用すると、構成の問題が発生したり、コンピューター上の他のソフトウェアと競合したりする可能性があります。 トラブルシューティングの最初の手順は、ハードウェア アクセラレーションが有効になっていることを確認することです。 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 が有効になっていることを確認するには、次の手順を実行します。

  1. Windows 検索ボックスに「PowerShell」と入力します。

  2. 検索結果で [Windows PowerShell] を右クリックし、[管理者として実行] を選択します。

  3. 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 :
    
  4. 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 ファイルは、テキスト エディターを使用して表示できます。