使用Microsoft调试器与Xamarin Android

Sor*_*oot 7 debugging android xamarin.android xamarin visual-studio-2015

" 打包"选项卡上的" Android选项"部分中的Android项目设置中有一个选项,可让您在Xamarin调试器或Microsoft调试器之间进行选择.Xamarin调试器可以工作,但不如微软那样好.不幸的是,我在尝试使用Microsoft调试器并在其中一个Visual Studio Android仿真器上部署时收到错误消息.

无法开始调试.目标设备上安装的不可调试应用程序.在设备上找不到所需的文件'/data/data/My.Application/lib/gdbserver'.请安装可调试版本.

有没有办法让Microsoft调试器工作?

Ric*_*ers 3

Xamarin 调试器只能调试托管(即 C#)代码。如果正在调试的项目是托管项目,则断点仅适用于 Xamarin 调试器。如果项目是本机应用程序或本机库,它们将不起作用。

Microsoft 调试器只能调试本机(即C/C++)代码。仅当正在调试的项目是本机应用程序或本机库,或者它附加到已运行的 Android 进程时,断点才适用于 Microsoft 调试器。

要将 gdbserver 添加到应用程序包中,您必须从托管应用程序引用本机代码库,或者包含它(将构建操作设置为 AndroidNativeLibrary)。我发现您还可以从项目添加到 gdbserver 的链接(再次将构建操作设置为 AndroidNativeLibrary),并使用路径嗅探从匹配的 ABI 中选择 gdbserver。项目文件片段:

  <ItemGroup>
    <AndroidNativeLibrary Include="$(ANDROID_NDK_ROOT)\prebuilt\android-arm\gdbserver\gdbserver">
      <Link>lib\armeabi-v7a\gdbserver</Link>
    </AndroidNativeLibrary>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

另请参阅类似问题的回答。