#android #visual-studio #avd #hyper-v
#Android #visual-studio #android-virtual-device #hyper-v
Вопрос:
Я пытаюсь отладить приложение NativeActivity C для Android из Visual Studio 2019, используя инструменты Visual Studio для Android.
Моя система использует Windows 10 Pro с включенным Hyper-V, запускает ряд других образов Hyper-V (по каким-то причинам это невозможно отключить), но установка Windows для разработки является «основной» (хостовой) ОС.
Я могу создать образец приложения и попытаться подключить его к AVD VisualStudio_android-25_arm_phone. Однако происходит одно из двух:
- Если у меня просто заканчивается Visual Studio, я получаю сообщение об ошибке:
Severity Code Description Project File Line Suppression State
Error Error installing the package. The device 'VisualStudio_android-25_x86_phone' is invalid or not running. Please switch to another device, or use the Android Virtual Device (AVD) Manager to start a compatible emulator, or connect a compatible Android device. XMCRemote3.Packaging 0
- Если я запускаю соответствующий x86 AVD внутри AVD manager, устройство фактически запускается. Если я затем попытаюсь запустить в Visual Studio, я получу диалоговое окно с ошибкой от AVD Manager о том, что устройство и хост имеют разные версии ADB.
Device error: adb server version (39) doesn't match this client (41); killing...
* daemon started successfully
adb.exe: device offline
Это журнал Visual Studio, когда это происходит:
1>Failed to start emulator.
1>emulator: Requested console port 5556: Inferring adb port 5557.
1>emulator: ERROR: x86 emulation currently requires hardware acceleration!
1>Please ensure Intel HAXM is properly installed and usable.
1>CPU acceleration status: Android Emulator requires an Intel processor with VT-x and NX support. Your CPU: 'AuthenticAMD'
1>Error installing the package. The device 'VisualStudio_android-25_x86_phone' is invalid or not running. Please switch to another device, or use the Android Virtual Device (AVD) Manager to start a compatible emulator, or connect a compatible Android device.
1>The device is invalid or is not running.
Я не думаю, что у меня проблема «устройство x86 не работает на AMD», поскольку я использую Hyper-V, и устройство запускается и становится интерактивным, когда я запускаю его вручную.
Иногда я думаю, что у меня может возникнуть проблема с «номером порта ADB», потому что в сообщении об ошибке в журнале иногда говорится о портах 5556 и 5557, а иногда о 5553 и 5554. Однако я бы вообще не знал, откуда это берется и что с этим делать.
И, как и в случае 2 выше, иногда он просто утверждает, что ADB неправильно подобран.
Что я могу с этим поделать? Нужно ли мне обновлять образ устройства или локальные инструменты? Оба были загружены / установлены совсем недавно.
Я ориентируюсь на SDK версии 21 как для минимальной, так и для целевой версий. Версия SDK Tools — 30.0.4, а эмулятор — 30.1.5. Установленные платформы — 8.0 / 26 и 7.1 / 25 (список доходит только до 8.1 / 27) Интересно, что в приложении SDKs and Tools Android settings нет версии «NDK», хотя Visual Studio компилирует исвязывает это просто отлично.
Интересно, устанавливает ли пакет Visual Studio что-то на стороне? Если да, есть ли другой инструмент для управления этим, кроме подменю «Android» в меню «Инструменты» Visual Studio?
Комментарии:
1. Вы не указываете, какую версию Android SDK вы используете. Обычно, когда я обновляю Android SDK, я перестраиваю с нуля новый образ эмулятора AVD на случай проблем с совместимостью. Также смотрите: learn.microsoft.com/en-us/xamarin/android/get-started /…
2. Я скачал и установил их все вчера, поэтому они должны быть синхронизированы? FWIW, мой текущий обходной путь — настроить таргетинг на физическое устройство, которое работает нормально. Только AVD являются злобными.