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 в сознании - следующие шаги:
- В идеале, удалите любое другое программное обеспечение для виртуализации, такое как VMWare, Virtual Box и клиенты VPN, такие как Cisco VPN (если вы не можете сделать это, пожалуйста, будьте бдительны на шаге 13)
- перезагружать
- В диалоговом окне "Эмулятор Visual Studio для Android" удалите все установленные профили устройств.
- Удалить все виртуальные коммутаторы Hyper-V - перейдите в Hyper-V > Диспетчер виртуальных коммутаторов> Удалить все виртуальные коммутаторы
- Запустите XdeCleanup.exe (обычно в "C:\Program Files (x86)\Microsoft XDE\10.0.10240.0")
- Также удалите все лишние виртуальные сетевые адаптеры, оставленные в "Панели управления> Сеть и Интернет> Сетевые подключения" (после выполнения предыдущих шагов у вас обычно останутся только физические адаптеры)
- Убедитесь, что общий доступ к сети отключен на всех сетевых адаптерах (щелкните правой кнопкой мыши, "Свойства", "Общий доступ", снимите флажок "Разрешить другим пользователям сети подключаться через Интернет на этом компьютере")
- Если когда-либо вы удалили строку
GuestDisplayProvider="VsEmulator.OpenGLGuestDisplay"
в xdesku.xml (обычно в "C:\Program Files (x86)\Microsoft XDE\10.0.10240.0\SKUs\Android"), сейчас хорошее время, чтобы положить его обратно.- перезагружать
- Возможно, вы захотите попробовать восстановить эмуляторы: перейдите в "Программы и компоненты"> "Эмулятор Microsoft Visual Studio для Android"> "Изменить" и нажмите "Восстановить" (хотя я должен сказать, что для меня это всегда не получается)
- перезагружать
- Откройте эмулятор Visual Studio для Android и установите, а затем запустите один из профилей (например, 7-дюймовый планшет KitKat (4.4) XHDPI - аналогично Asus Google Nexus 7)
- Это может уже работать, но если нет, вам следует убедиться, что ваши сетевые адаптеры настроены правильно. Остановите эмулятор, затем выберите "Панель управления"> "Сеть и Интернет"> "Сетевые подключения" и щелкните правой кнопкой мыши адаптеры vEthernet, затем "Свойства" и убедитесь, что в списке "Сеть" установлены только следующие флажки (как описано в разделе " Вмешательство из других средств виртуализации или сети"). программное обеспечение и драйверы: клиент для сетей Microsoft, планировщик пакетов QoS, общий доступ к файлам и принтерам для сетей Microsoft, драйвер протокола LLDP Microsoft, драйвер ввода-вывода обнаружения топологии канального уровня, ответчик обнаружения топологии канального уровня, протокол Интернета версии 6 (TCP/IPv6), Интернет-протокол версии 4 (TCP/IPv4)
- перезагружать
- Попробуйте снова запустить эмулятор в "Visual Studio Emulator для Android"
- Если это все еще не работает, попробуйте удалить и воссоздать профили, а также множество перезагрузок...
Вероятно, здесь есть несколько избыточных шагов, но я думаю, что они охватывают все, что вы должны попробовать (похоже, ключ заключается в том, чтобы убедиться, что сетевые адаптеры настроены правильно). Если я пропустил некоторые вещи или если вы думаете, что некоторые шаги бесполезны, пожалуйста, прокомментируйте.
После долгих поисков у меня все заработало. Надеюсь это поможет. Я нашел это в комментариях к статье 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 с помощью этих шагов. Ну, в конце концов это сработало. Читать дальше.
- В списке Виртуальные коммутаторы выберите Новый виртуальный сетевой коммутатор…
- Под каким типом виртуального коммутатора вы хотите создать? выберите Внешний.
- В раскрывающемся списке Внешняя сеть: выберите адаптер Wi-Fi.
- Нажмите кнопку " Создать виртуальный коммутатор".
- Измените Имя: в соответствии с именем вашего адаптера Wi-Fi.
- Нажмите кнопку Применить.
Однако в моем случае после нажатия кнопки " Применить" сообщение об ошибке показало, что адаптер Wi-Fi был подключен. Хммм.
Я запустил апплет панели управления " Просмотр сетевых подключений", и адаптер Wi-Fi не показал, что он соединен мостом. (Когда существует сетевой мост, в столбце " Состояние" добавляется слово " Мост".) Я подозреваю, что где-то в реестре скрывались пыльные цифровые биты.
Вот что прояснило проблему для меня.
- Щелкните правой кнопкой мыши на устройстве Wi-Fi.
- Выберите Добавить к мосту.
- Снова щелкните правой кнопкой мыши на устройстве Wi-Fi.
- Выберите Удалить с моста.
Теперь вернитесь к этапам создания виртуального коммутатора для сети 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.