web-dev-qa-db-ja.com

Visual studio Androidエミュレーターが完全に起動しない

Visual Studio 2015で空のCordovaアプリケーションを作成し、Visual Studio Androidエミュレーターでデバッグを開始します(最初にLollipop、次にKitKatを使用)。XDEが起動し、画面にOS is starting...。それが表示されるまで、しばらくの間そのようにとどまります

The emulator is unable to connect to the device operating system; The device did not response to the connect request. Some functionalities might be disabled'

ダイアログを閉じた後、エミュレータを終了するまで、ダイアログは永久に表示されたままになります。エミュレーターを強制終了すると、Visual Studioからエラーがトリガーされます。

Could not start emulated device 'VS Emulator Lollipop Phone'.

Hyper-vを開くと、リストにvmが表示され、実行中と表示されます。接続すると、次のようなコンソール画面が表示されます

screen

19
ritcoder

私はこの問題がしばらくの間存在していることを知っていますが、まだこの問題に遭遇する可能性のある人々のための新しい解決策を見つけました...

API v 21および22についても同じ問題(「OS Is Starting」でスタック)が発生しましたが、API v23イメージは起動しましたが、デバッグできませんでした。起動するとすぐにアプリがクラッシュしました。

以下により問題が修正されました。

  • エミュレーターをシャットダウンします
  • Hyper-Vマネージャーを開く
  • Android Imageの設定に移動します
  • 「プロセッサ」構成ノードを展開します
  • 「互換性」ノードに移動します
  • [異なるプロセッサバージョンの物理コンピューターに移行する]オプションをオンにします

どうやら、Android画像またはそのようなものと互換性のない新しいプロセッサアーキテクチャと関係があります-動作する限り、気にしないでください:)

29
Trashcoder

私は同じ問題に直面していました。他の回答で示唆されているように、xdesku.xmlのGuestDisplayProvider = "VsEmulator.OpenGLGuestDisplay"を削除して、OpenGLを無効にしようとしました。

最初は、仮想マシンは起動しますが(Hyper-Vマネージャーから接続できます)、エミュレーターウィンドウ自体はマシンに接続しません(「OSが起動中」で止まって、次のメッセージ:「エミュレータはデバイスのオペレーティングシステムに接続できません:ゲストシステムのIPアドレスを自動検出できませんでした。一部の機能が無効になっている可能性があります。)

この回答 https://stackoverflow.com/a/31698124/1010492 とその1つ https://stackoverflow.com/a/14402740/1010492 は接続性を解決するのに役立ちました問題が発生し、エミュレータウィンドウ内に仮想マシンを表示することができました。

ただし、「VsEmulator.OpenGLGuestDisplay」という行を戻し、プロファイルを削除して何度も再起動した後、エミュレーターは正しく機能しませんでした(スケーリングの問題、ホーム、戻るなどのボタンはありません)。

要約すると、Hyper-V対応のコンピューターで同じ問題が発生している場合は、次の手順を意識して実行してみてください。

  1. 理想的には、VMWare、Virtual Box、Cisco VPNなどのVPNクライアントなどの他の仮想化ソフトウェアをアンインストールします(それができない場合は、ステップ13で注意してください)
  2. リブート
  3. [Android用Visual Studioエミュレーター]ダイアログで、インストールされているすべてのデバイスプロファイルを削除します。
  4. すべてのHyper-V仮想スイッチを削除-Hyper-V>仮想スイッチマネージャー>すべての仮想スイッチを削除に移動します
  5. XdeCleanup.exeを実行します(通常は「C:\ Program Files(x86)\ Microsoft XDE\10.0.10240.0」にあります)
  6. また、[コントロールパネル]> [ネットワークとインターネット]> [ネットワーク接続]に残っている余分な仮想ネットワークアダプターも削除します(前の手順を実行した後、通常は物理アダプターのみが残されます)
  7. すべてのネットワークアダプターでネットワーク共有が無効になっていることを確認します(右クリックして[プロパティ]、[共有]、[他のネットワークユーザーにこのコンピューターのインターネット接続を介した接続を許可する]をオフにします)
  8. Xdesku.xml(通常「C:\ Program Files(x86)\ Microsoft XDE\10.0.10240.0\SKUs\Android」)のGuestDisplayProvider="VsEmulator.OpenGLGuestDisplay"行を削除した場合、NOW IS A戻るのに良い時間です。
  9. リブート
  10. エミュレータを修復しようとする場合があります。[プログラムと機能]> [Microsoft Visual Studio Emulator for Android]に移動し、[Repair]を押して変更します(これは常に失敗します)
  11. リブート
  12. Visual Studio Emulator for Androidを開き、インストールしてからプロファイルの1つを実行します(例:7 '' KitKat(4.4)XHDPI Tablet-Asus Google Nexus 7と同様)
  13. 既に動作している可能性がありますが、そうでない場合は、ネットワークアダプタが適切にセットアップされていることを確認する必要があります。エミュレーターを停止し、[コントロールパネル]> [ネットワークとインターネット]> [ネットワーク接続]に移動し、vEthernetアダプターを右クリックして、[プロパティ]を選択し、[ネットワーク]リストで次のボックスのみがオンになっていることを確認します( その他の仮想化またはネットワークソフトウェアおよびドライバー :Microsoftネットワーク用クライアント、QoSパケットスケジューラ、Microsoftネットワーク用ファイルおよびプリンター共有、Microsoft LLDPプロトコルドライバー、リンク層トポロジディスカバリマッパーI/Oドライバ、リンク層トポロジディスカバリレスポンダ、インターネットプロトコルバージョン6(TCP/IPv6)、インターネットプロトコルバージョン4(TCP/IPv4)
  14. リブート
  15. 「Visual Studio Emulator for Android」でエミュレータを再起動してみてください
  16. それでも機能しない場合は、プロファイルを削除して再作成し、再起動を繰り返してください...

おそらくいくつかの冗長な手順がありますが、試してみるべきすべてを網羅していると思います(重要なのは、ネットワークアダプタが適切にセットアップされていることを確認しているようです)。何かが足りない場合、またはいくつかの手順が役に立たないと思われる場合は、コメントしてください。

20
Gyum Fox

多くの検索の後、私はこれを機能させました。お役に立てれば。 Android Visual Studio 2015のエミュレーター)のMSDN記事 のコメントで見つけました

Program Files(または64ビットマシンを使用している場合はProgram Files x86)\ Microsoft XDE\10.0.0.0\SKUs\Android\xdesku.xmlおよびこの行の削除:GuestDisplayProvider = "VsEmulator.OpenGLGuestDisplay"。ただし、OpenGLを有効にしないと、多くの新機能を利用できません。

6

@Gyum Fox answerの手順を実行しましたが、まだ喜びがありません。

AndroidのVisual Studio Emulatorは最初のエミュレータインスタンスを作成しますが、いくつかの仮想ネットワークスイッチも作成されます。ラップトップの場合、通常3つのvEthernetインスタンスが作成されます。 Wi-Fi、およびゲストからホストへの接続用の別の内部仮想スイッチ。

私の場合、有線LANのvEthernetが正常に作成され、Visual Studio Emulator for Androidプロセスがハングしました。これは、Hyper-V ManagerおよびVirtual Switch Managerアクションから確認できます。

Virtual Switch Managerを使用して、これらの手順で欠落しているWi-Fi仮想スイッチを正常に作成しました。まあ、最終的にはうまくいった。読む。

  1. 仮想スイッチリストで、新しい仮想ネットワークスイッチ…を選択します
  2. どのタイプの仮想スイッチを作成しますか?の下で、Externalを選択します。
  3. 外部ネットワーク:ドロップダウンで、Wi-Fiアダプターを選択します。
  4. 仮想スイッチの作成ボタンをクリックします。
  5. Name:をWi-Fiアダプターの名前と一致するように変更します。
  6. 適用ボタンをクリックします。

私の場合、適用をクリックした後、Wi-Fiアダプターがブリッジされたことを示すエラーメッセージが表示されました。うーん。

View Network Connectionsコントロールパネルアプレットを開始しましたが、Wi-Fiアダプターはブリッジされていることを表示しませんでした。 (ネットワークブリッジが存在する場合、Status列にはWord Bridgedが追加されます。)レジストリのどこかに、ほこりっぽいデジタルビットが潜んでいると思います。

これが私にとって問題を解決したものです。

  1. Wi-Fiデバイスを右クリックします。
  2. ブリッジに追加を選択します。
  3. Wi-Fiデバイスをもう一度右クリックします。
  4. ブリッジから削除を選択します。

次に、Wi-Fiネットワーク用の仮想スイッチを作成する手順に戻ります。これで手順は正常に完了するはずです。

これで、Android必要なエミュレーターの作成に戻ることができます。

最後に、仮想スイッチが作成されていない場合、有線LANにほこりだらけのデジタルビットがかかっている可能性があると思います。その場合、有線LANアダプターでブリッジの追加と削除のトリックを試してみて、問題が解決するかどうかを確認します。

そして、今、仮想スイッチを作成せずにネットワークアダプターでブリッジの追加と削除のトリックを実行するだけで十分であると思われます。私にとって、仮想スイッチの作成は、問題が修正されたことの証明でした。 YMMV ;-)

1
Gyle Iverson

私もこの問題を抱えていましたが、これはAndroidエミュレーターだけでなく、すべてのWindows Phoneエミュレーター用でした。

これは私が問題を解決するためにしたことです

  • GenymotionとVirtual Boxをアンインストールします(システムにこれらがありましたが、これで問題は解決しませんでした)
  • すべての仮想アダプターを削除しました。これはトリッキーな部分です。どのアダプターもHyper-V仮想マネージャーから削除できませんでした。 powershellを使用してremove-vmswitch -Name "V Adapterの名前" -forceを実行する必要がありました。また、これからすべてのアダプターを削除できず、このリンク " https:// social。 technet.Microsoft.com/Forums/windowsserver/en-US/e49df568-4f4c-47b7-b30c-952d1e26ca58/cant-remove-failed-virtual-switch-from-hypervs-virtual-switch-manager?forum=winserverhyperv 「すべての仮想アダプターを削除しました
  • コンピューターを再起動します
  • この後、Hyper-V仮想マネージャーにvアダプターはありませんでした
  • XdeCleanup.exeを実行します(念のため)

  • また、ウイルスガードからファイアウォールを無効にしました

この後、「Android用Visual Studioエミュレーター」からエミュレーターを実行できました。

1

私のシステムでは、無効化されたvEthernet(内部イーサネットポートW​​indows Phoneエミュレーター内部スイッチ)を再度有効にした後、再び機能しました。再起動する必要はありませんでした。

1
Bart Vanseer

私の問題は、会社がすべてのPCに適用したいくつかのエンタープライズポリシーを持つWindowsファイアウォールに関連していることがわかりました。 Windows Firewallサービスを停止すると、正常に機能しました。

1
Jaime Botero

私のマシンではエミュレーターを起動できましたが、デプロイおよびデバッグしようとするとOpenGLエラーが発生しました。 Dockerをインストールした後に問題が始まったことに気付きました。気まぐれに、私はDockerをシャットダウンし、vEthernet(DockerNAT)ネットワーク接続を無効にすることにしました。これで問題が解決しました。今、Andoirdエミュレーターを使用する必要があるときはいつでも、Dockerをシャットダウンする必要があります。その後、デバッグが完了したら、Dockerを有効化/再起動します。

0
user3469676

Gyum Foxによって提供された洞察は、他のものを試すのに必要な手がかりを提供しましたが、私は別の答えを追加しています...

[注:エミュレータを最後に使用できたとき(約3週間前)、ワイヤレスを無効にし、Devラップトップで有線接続を使用していました。スイッチのスペースが足りなくなったため、唯一の接続オプションとしてワイヤレスを再度有効にしました。これは完全に偶然かもしれませんが、読み進めて、すべてを決定させます。]

成功せずにGyumの手順を実行した後、ワイヤレスをオフにして、エミュレーターを起動してみることにしました。

あなたはそれを知りませんか...それは問題なく機能しました! 8-}

エミュレータを実行したら、ワイヤレスを再度有効にし、エミュレータが接続を取得しました。

私はネットワークの男ではないので、理解しようとはしません。それはマイナーなピタですが、ちょっと...それがうまくいけば!!! ;-}

0
Sam C

この問題が発生した理由の1つは、デフォルトの場所にAndroid SDKをインストールしなかったためです。アプリケーションをデバッグするには、以下の手順に従う必要がありました。 https://msdn.Microsoft.com/en-us/library/mt228282.aspx#ADB

フォルダー「Android SDK Tools」を作成し、SDKに値を持つキー「Path」を追加する必要がありました。この場合は「E:\ Android\Android_SDK」でした

0