打包标签上的 Android选项部分的Android项目设置中有一个选项,可让您在Xamarin调试器或Microsoft调试器之间进行选择。 Xamarin调试器可以工作,但不如微软那样好。不幸的是,我在尝试使用Microsoft调试器并在其中一个Visual Studio Android仿真器上部署时收到错误消息。
无法开始调试。目标设备上安装的不可调试应用程序。在设备上找不到所需的文件'/data/data/My.Application/lib/gdbserver'。请安装可调试版本。
有没有办法让Microsoft调试器工作?
答案 0 :(得分:3)
Xamarin调试器只能调试托管(即C#)代码。如果正在调试的项目是托管项目,则断点仅适用于Xamarin调试器。如果项目是本机应用程序或本机库,它们将无法工作。
Microsoft调试器只能调试本机(即C / C ++)代码。如果正在调试的项目是本机应用程序或本机库,或者它已连接到已经运行的Android进程,则断点仅适用于Microsoft调试器。
要将gdbserver放入应用程序包,您必须从托管应用程序引用本机代码库,或者包含它(将构建操作设置为AndroidNativeLibrary)。我发现你还可以从项目中添加一个指向gdbserver的链接(再次,将build action设置为AndroidNativeLibrary),并使用路径嗅探从匹配的ABI中选择gdbserver。项目文件片段:
<ItemGroup>
<AndroidNativeLibrary Include="$(ANDROID_NDK_ROOT)\prebuilt\android-arm\gdbserver\gdbserver">
<Link>lib\armeabi-v7a\gdbserver</Link>
</AndroidNativeLibrary>
</ItemGroup>