android - 将 Microsoft 调试器与 Xamarin Android 结合使用

标签 android debugging xamarin xamarin.android visual-studio-2015

Packaging 选项卡的 Android Options 部分的 Android 项目设置中有一个选项,可让您在 Xamarin 调试器或 Microsoft 调试器之间进行选择。 Xamarin 调试器可以工作,但不如 Microsoft 调试器好。不幸的是,我在尝试使用 Microsoft 调试器并在其中一个 Visual Studio Android 模拟器上进行部署时收到一条错误消息。

Unable to start debugging. Non-debuggable application installed on the target device. Required file '/data/data/My.Application/lib/gdbserver' could not be found on the device. Please install a debuggable version.

有什么方法可以让 Microsoft 调试器正常工作吗?

最佳答案

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

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

要将 gdbserver 放入应用程序包中,您必须从托管应用程序中引用 native 代码库,或者包含它(构建操作设置为 AndroidNativeLibrary)。我发现您还可以从项目中添加指向 gdbserver 的链接(同样,构建操作设置为 AndroidNativeLibrary),并利用路径嗅探从匹配的 ABI 中选择 gdbserver。项目文件 fragment :

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

另请参阅 my answera similar question .

关于android - 将 Microsoft 调试器与 Xamarin Android 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32069462/

相关文章:

javascript - React-native 和 React-native-navigation 错误

angular - 如何调试 "Maximum call stack size exceeded"等错误

python - 如何在 Python 项目中关闭 Numba DEBUG 消息?

Azure存储: BlobClient keeps resetting itself while uploading large files

android - Xamarin Forms Android 问题,包 android.support.design.* 不存在

android - h264 原始视频流格式

android - 拍摄全分辨率图片的示例代码

java - 实现动画后 ImageButton 不可点击

debugging - 托管调试助手 'FatalExecutionEngineError'

android - RecyclerView Adapter - NotifyItemRemoved - 删除的项目在滚动后再次出现