Ответ 1
У меня была такая же проблема, и я думаю, что понял это.
Отладчик Xamarin может только отлаживать управляемый (то есть С#) код. Точки останова работают только с отладчиком Xamarin, если отлаживаемый проект является управляемым проектом. Они не работают, если проект является родным или родной библиотекой.
Отладчик Microsoft может только отлаживать собственный (например, C/С++) код. Точки останова работают только с отладчиком Microsoft, если отлаживаемый проект является родным приложением или собственной библиотекой или если он подключен к уже запущенному процессу Android.
Я смог использовать оба отладчика одновременно для отладки гибридного (управляемого + родного) приложения, выполнив следующую процедуру:
- В свойствах управляемого приложения выберите "Xamarin" для отладчика:
- В свойствах проекта собственной библиотеки в разделе "Отладка" убедитесь, что "Отладка и пакет для запуска" соответствуют целевому и APK, выбранному для управляемого приложения. Это позволит убедиться, что оба отладчика направлены в одно и то же приложение для Android, а также позволяют запускать приложение непосредственно с отладчиком Microsoft (путем выбора собственной библиотеки в качестве цели для отладки), если вы хотите только отладить собственную часть. Вам, вероятно, потребуется найти APK, и для цели вам может понадобиться ввести целевое имя, если оно не отображается в раскрывающемся списке (имена целей - это строки, которые отображаются "adb devices" ).
- Выберите управляемое приложение для отладки и убедитесь, что целевая архитектура и устройство верны на панели инструментов отладки. Например, если я хочу отлаживать свой Nexus 4, который использует ARM-архитектуру, я делаю так, чтобы ARM был выбран для цели, а не "Any CPU", а мой Nexus 4 был установлен как моя цель:
- Начать отладку. На этом этапе отладчик Xamarin активен, и контрольные точки в коде С# должны работать.
- Пока управляемое приложение все еще работает или отлаживается, щелкните правой кнопкой мыши проект собственной библиотеки и выберите "Отладка" > "Присоединить к процессу Android". Если все пойдет хорошо, отладчик Microsoft запустится и приложится к приложению (за исключением "родной стороны", так сказать).
Я сделал короткое видео, чтобы продемонстрировать это: Отладочный и собственный код отладки от Android с помощью Visual Studio 2015