Visual Studio Android эмулятор не запустится полностью

Я создаю пустое приложение Cordova в Visual Studio 2015 и начинаю отладку с помощью эмуляторов Android для Visual Studio (сначала с помощью леденца на палочке, а затем 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 в списке и отображается как работающий. Когда я подключаюсь, я вижу экран консоли, как показано ниже

экран

10 ответов

Я знаю, что эта проблема существует уже давно, но я только что нашел новое решение для людей, которые все еще могут столкнуться с этой проблемой...

У меня была та же проблема (зависшая в "ОС запускается") для API v 21 и 22. Образы API v23 запускались, но не могли отлаживаться - приложение зависало сразу после запуска.

Следующее исправило проблему:

  • Выключи эмулятор
  • Открыть диспетчер Hyper-V
  • Зайдите в настройки для Android Image
  • Разверните узел конфигурации "Процессор"
  • Перейти на узел "Совместимость"
  • Установите флажок "Переход на физический компьютер с другой версией процессора".

Очевидно, это как-то связано с тем, что новые архитектуры процессоров несовместимы с образами Android или что-то в этом роде - не волнует, пока это работает:)

Я столкнулся с той же проблемой. Я попытался отключить OpenGL, удалив: GuestDisplayProvider = "VsEmulator.OpenGLGuestDisplay" в xdesku.xml, как это предлагается в других ответах.

Сначала виртуальная машина загружается (вы можете подключиться к ней из диспетчера Hyper-V), но само окно эмулятора не подключается к машине (застряло в "ОС запускается", а затем завершается сбоем после запуска, пока следующее сообщение: "Эмулятор не может подключиться к операционной системе устройства. Не удалось автоматически определить IP-адрес гостевой системы. Некоторые функции могут быть отключены.")

Этот ответ /questions/41098444/emulyator-visual-studio-2015-dlya-android-ne-rabotaet-xdeexe-vyihod-3/41098459#41098459 и тот /questions/40866449/oshibka-emulyatora-windows-phone-8-chto-to-sluchilos-pri-sozdanii-pereklyuchatelya/40866461#40866461 помог мне решить проблему с подключением, и я смог отобразить виртуальную машину внутри окно эмулятора.

Однако эмулятор не работал должным образом (проблемы с масштабированием, нет кнопок "Домой", "Назад" и т. Д.), Пока я не вернул строку "VsEmulator.OpenGLGuestDisplay" и не удалял свои профили и не перезагружался несколько раз.

Подводя итог, если вы сталкиваетесь с той же проблемой на компьютере с поддержкой Hyper-V, вы можете попробовать --over в сознании - следующие шаги:

  1. В идеале, удалите любое другое программное обеспечение для виртуализации, такое как VMWare, Virtual Box и клиенты VPN, такие как Cisco VPN (если вы не можете сделать это, пожалуйста, будьте бдительны на шаге 13)
  2. перезагружать
  3. В диалоговом окне "Эмулятор Visual Studio для Android" удалите все установленные профили устройств.
  4. Удалить все виртуальные коммутаторы Hyper-V - перейдите в Hyper-V > Диспетчер виртуальных коммутаторов> Удалить все виртуальные коммутаторы
  5. Запустите XdeCleanup.exe (обычно в "C:\Program Files (x86)\Microsoft XDE\10.0.10240.0")
  6. Также удалите все лишние виртуальные сетевые адаптеры, оставленные в "Панели управления> Сеть и Интернет> Сетевые подключения" (после выполнения предыдущих шагов у вас обычно останутся только физические адаптеры)
  7. Убедитесь, что общий доступ к сети отключен на всех сетевых адаптерах (щелкните правой кнопкой мыши, "Свойства", "Общий доступ", снимите флажок "Разрешить другим пользователям сети подключаться через Интернет на этом компьютере")
  8. Если когда-либо вы удалили строку GuestDisplayProvider="VsEmulator.OpenGLGuestDisplay" в xdesku.xml (обычно в "C:\Program Files (x86)\Microsoft XDE\10.0.10240.0\SKUs\Android"), сейчас хорошее время, чтобы положить его обратно.
  9. перезагружать
  10. Возможно, вы захотите попробовать восстановить эмуляторы: перейдите в "Программы и компоненты"> "Эмулятор Microsoft Visual Studio для Android"> "Изменить" и нажмите "Восстановить" (хотя я должен сказать, что для меня это всегда не получается)
  11. перезагружать
  12. Откройте эмулятор Visual Studio для Android и установите, а затем запустите один из профилей (например, 7-дюймовый планшет KitKat (4.4) XHDPI - аналогично Asus Google Nexus 7)
  13. Это может уже работать, но если нет, вам следует убедиться, что ваши сетевые адаптеры настроены правильно. Остановите эмулятор, затем выберите "Панель управления"> "Сеть и Интернет"> "Сетевые подключения" и щелкните правой кнопкой мыши адаптеры vEthernet, затем "Свойства" и убедитесь, что в списке "Сеть" установлены только следующие флажки (как описано в разделе " Вмешательство из других средств виртуализации или сети"). программное обеспечение и драйверы: клиент для сетей Microsoft, планировщик пакетов QoS, общий доступ к файлам и принтерам для сетей Microsoft, драйвер протокола LLDP Microsoft, драйвер ввода-вывода обнаружения топологии канального уровня, ответчик обнаружения топологии канального уровня, протокол Интернета версии 6 (TCP/IPv6), Интернет-протокол версии 4 (TCP/IPv4)
  14. перезагружать
  15. Попробуйте снова запустить эмулятор в "Visual Studio Emulator для Android"
  16. Если это все еще не работает, попробуйте удалить и воссоздать профили, а также множество перезагрузок...

Вероятно, здесь есть несколько избыточных шагов, но я думаю, что они охватывают все, что вы должны попробовать (похоже, ключ заключается в том, чтобы убедиться, что сетевые адаптеры настроены правильно). Если я пропустил некоторые вещи или если вы думаете, что некоторые шаги бесполезны, пожалуйста, прокомментируйте.

После долгих поисков у меня все заработало. Надеюсь это поможет. Я нашел это в комментариях к статье MSDN для эмулятора Android с Visual Studio 2015

Новые изображения могут работать, если вы отключите OpenGL, перейдя в Program Files (или Program Files x86, если вы работаете на 64-разрядной машине) \ Microsoft XDE \ 10.0.0.0 \ SKUs \ Android \ xdesku.xml и удалив эту строку: GuestDisplayProvider = "VsEmulator.OpenGLGuestDisplay". Однако без включенного OpenGL вы не сможете воспользоваться многими новыми функциями.

У меня также была эта проблема, и это было не только для эмуляторов Android, но и для всех эмуляторов Windows Phone.

Это то, что я сделал, чтобы исправить проблему

  • Удалите Genymotion и Virtual Box (они были у меня в системе, но это не решило проблему)
  • Удалены все виртуальные адаптеры. это сложная часть. Ни один из адаптеров не удалось удалить из виртуального менеджера Hyper-V. Мне пришлось использовать powershell и запустить remove-vmswitch -Name "Имя V-адаптера" -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 (на всякий случай)

  • Кроме того, я отключил брандмауэр от моей вирусной охраны

После этого я смог запустить эмулятор из "Эмуляторы Visual Studio для Android"

В моей системе он снова заработал после повторного включения отключенного vEthernet (внутреннего коммутатора внутреннего порта эмулятора Windows Phone). Мне не пришлось перезагружаться.

Я прошел шаги в ответе @Gyum Fox и до сих пор не радуюсь.

В то время как эмулятор Visual Studio для Android создает первый экземпляр эмулятора, также создаются несколько виртуальных сетевых коммутаторов. Для ноутбука обычно создаются три экземпляра vEthernet; один для проводной локальной сети, один для Wi-Fi, и другой внутренний виртуальный коммутатор для соединений между гостем и хостом.

В моем случае vEthernet для проводной ЛВС был успешно создан, а затем зависал процесс эмулятора Visual Studio для Android. Это можно наблюдать из диспетчера Hyper-V и действия Virtual Switch Manager.

Используя Virtual Switch Manager, я успешно создал отсутствующий виртуальный коммутатор Wi-Fi с помощью этих шагов. Ну, в конце концов это сработало. Читать дальше.

  1. В списке Виртуальные коммутаторы выберите Новый виртуальный сетевой коммутатор…
  2. Под каким типом виртуального коммутатора вы хотите создать? выберите Внешний.
  3. В раскрывающемся списке Внешняя сеть: выберите адаптер Wi-Fi.
  4. Нажмите кнопку " Создать виртуальный коммутатор".
  5. Измените Имя: в соответствии с именем вашего адаптера Wi-Fi.
  6. Нажмите кнопку Применить.

Однако в моем случае после нажатия кнопки " Применить" сообщение об ошибке показало, что адаптер Wi-Fi был подключен. Хммм.

Я запустил апплет панели управления " Просмотр сетевых подключений", и адаптер Wi-Fi не показал, что он соединен мостом. (Когда существует сетевой мост, в столбце " Состояние" добавляется слово " Мост".) Я подозреваю, что где-то в реестре скрывались пыльные цифровые биты.

Вот что прояснило проблему для меня.

  1. Щелкните правой кнопкой мыши на устройстве Wi-Fi.
  2. Выберите Добавить к мосту.
  3. Снова щелкните правой кнопкой мыши на устройстве Wi-Fi.
  4. Выберите Удалить с моста.

Теперь вернитесь к этапам создания виртуального коммутатора для сети Wi-Fi. Шаги должны завершиться успешно сейчас.

И теперь вы можете вернуться к созданию нужных вам эмуляторов Android.

Одна заключительная мысль... Если вы не видите создания каких-либо виртуальных коммутаторов, я подозреваю, что это может означать, что в проводной ЛВС могут быть разорваны пыльные цифровые биты. В этом случае я бы попробовал трюк "добавить и удалить из моста" на адаптере проводной ЛВС, чтобы проверить, все ли в порядке с вами.

И теперь я полагаю, что простого трюка "добавить и удалить из моста" на сетевом адаптере без создания виртуального коммутатора может быть достаточно. Для меня создание виртуального коммутатора было доказательством того, что проблема была исправлена. YMMV;-)

Я обнаружил, что моя проблема связана с брандмауэром Windows с некоторыми корпоративными политиками, которые моя компания применяет ко всем ПК. Как только я остановил службу брандмауэра Windows, все заработало.

Я добавляю отдельный ответ, хотя понимание, предоставленное Gyum Fox, дало подсказки, которые мне нужны, чтобы попробовать другие вещи...

[ПРИМЕЧАНИЕ: В прошлый раз, когда я смог использовать эмуляторы (~3 недели назад), у меня было отключено беспроводное соединение, и я использовал проводное соединение на своем ноутбуке Dev. На моем коммутаторе не хватило места, поэтому я снова включил беспроводную связь в качестве единственного варианта подключения. Это может быть совершенно случайно, но читайте дальше, и я дам вам все решить.]

После безуспешного выполнения шагов Гьюма я решил отключить беспроводную связь, а затем попробовать запустить эмулятор.

Разве вы не знаете это... это работало без проблем! 8-}

После запуска эмулятора я снова включил беспроводную связь, и эмулятор установил соединение.

Я не сетевой парень, поэтому я даже не буду пытаться понять. Это мелкая PITA, но эй... если это работает!!!;-}

Одна из причин, по которой у меня возникла эта проблема, заключается в том, что я не установил Android SDK в папку по умолчанию. Поэтому я должен был следовать этим инструкциям, чтобы иметь возможность отладки моего приложения: https://msdn.microsoft.com/en-us/library/mt228282.aspx

Мне пришлось создать папку "Инструменты Android SDK" и добавить ключ "Путь" со значением в мой SDK, который в моем случае был "E:\Android\Android_SDK".

На моей машине я мог запустить эмулятор, но при попытке развернуть и отладить я получил ошибку OpenGL. Я понял, что мои проблемы начались после того, как я установил Docker. По какой-то причине я решил закрыть Docker и отключить сетевое соединение vEthernet (DockerNAT). Это исправило мою проблему. Теперь, когда мне нужно использовать эмулятор Andoird, я должен выключить Docker. Затем, когда я закончу отладку, я включаю / перезапускаю Docker.

Другие вопросы по тегам