Uso del depurador de Microsoft con Xamarin Android
Hay una opción en la configuración de proyectos de Android en la sección Opciones de Android en la pestaña Empaquetado que le permite elegir entre el depurador de Xamarin o el depurador de Microsoft. El depurador de Xamarin funciona, pero no tan bueno como el de Microsoft. Lamentablemente me sale un mensaje de error al intentar usar el depurador de Microsoft y desplegar en uno de los emuladores de Visual Studio Android.
No se puede iniciar la depuración. Aplicación no depurable instalada en el dispositivo de destino. No se pudo encontrar el archivo requerido '/data/data/My.Application/lib/gdbserver' en el dispositivo. Instale una versión debugable.
¿Hay alguna manera de obtener el depurador de Microsoft para trabajar?
- Guardar Bitmap en un archivo - Xamarin, Monodroid
- Monodroid para el servicio android
- Cómo pasar el parámetro al método java desde c # en JNI
- Error MSB4185: "System.Globalization.CultureInfo" no se ha habilitado para la ejecución
- Cómo utilizar Android KitKat EvaluateJavascript en Xamarin.Android/Monodroid y recuperar el resultado?
- Manejo de URL específicas con filtros de intenciones en Xamarin Mono para Android
- Objeto refrence no establecido en una instancia de un objeto Cuando creo nueva aplicación de Android (Visual Studio)
- La instalación de Xamarin Android falla
El depurador Xamarin sólo puede depurar código administrado (es decir, C #). Los puntos de interrupción sólo funcionan con el depurador de Xamarin si el proyecto que se está depurando es un proyecto administrado. No funcionan si el proyecto es una aplicación nativa o una biblioteca nativa.
El depurador de Microsoft sólo puede depurar código nativo (es decir, C / C ++). Los puntos de interrupción sólo funcionan con el depurador de Microsoft si el proyecto que se está depurando es una aplicación nativa o una biblioteca nativa o si está conectado a un proceso Android ya en ejecución.
Para obtener gdbserver en el paquete de la aplicación, tiene que hacer referencia a una biblioteca de código nativo de la aplicación administrada o incluirla (con la acción de compilación establecida en AndroidNativeLibrary). Encontré que también puede agregar un vínculo a gdbserver (de nuevo, con la acción de compilación establecida en AndroidNativeLibrary) de un proyecto y hacer uso de sniffing de ruta para seleccionar el gdbserver de la ABI coincidente. Snippet del archivo de proyecto:
<ItemGroup> <AndroidNativeLibrary Include="$(ANDROID_NDK_ROOT)\prebuilt\android-arm\gdbserver\gdbserver"> <Link>lib\armeabi-v7a\gdbserver</Link> </AndroidNativeLibrary> </ItemGroup>
También vea mi respuesta a una pregunta similar .