android - 为什么我在开始调试 Xamarin Android 应用程序时无法命中断点?

标签 android debugging visual-studio-2013 xamarin

当我开始调试我的第一个 Xamarin Android 应用程序时,我设置了一些断点。无论我做什么,它仍然不会到达断点。这有什么问题吗?

我试过很多次了,但没有用。

最佳答案

我发现包含您的项目的文件夹的名称会有所不同。 你的里面有空格或标点符号吗?

文件夹名称通常与项目名称相同,但并非必须如此。我在一个解决方案中有一个名为“Engagement (Android)”的 Xamarin Android 项目,默认情况下它存储在磁盘上 ...\Engagement (Android)\Engagement (Android).csproj

无论我做什么,它都不会遇到断点。我添加的全新项目(称为 Test1、Test2 等)- 完美调试。

当我将文件夹名称更改为“Engagement_Android”(保持相同的项目名称)时 - 它再次开始遇到断点。

随之而来的其他症状包括“清理项目”选项没有清除 bin/debug 文件夹中的所有文件(它留下了项目的主要 DLL 和 PDB 文件)。

对我来说最重要的是,当我进行干净构建时,bin/debug 文件夹不包含主 exe 的“MDB”文件(在本例中为 Engagement Android.dll.mdb)等等没有被打包成APK文件。

事实证明,MDB 文件是将调试信息打包到 APK 中的方式 - 没有它,您将无法调试!我认为它们是在构建过程中由名为 PDB2MDB.exe 的工具创建的。

如果您尝试这样做,请记住重要的是物理文件夹名称,而不是项目名称。此外,您需要编辑 SLN 文件,因为它包含对解决方案中每个项目路径的引用 - 因此也请在那里进行更改。

关于android - 为什么我在开始调试 Xamarin Android 应用程序时无法命中断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641160/

相关文章:

c# - 跟踪静态构造函数执行

resharper - 为什么 IntelliSense 不断将函数更改为函数?

visual-studio-2013 - Visual Studio 2013 构建和发布

android - Android 适配器是异步的吗?

java - 无法使用 PowerMock 覆盖最终类的静态最终变量

java - 自定义 Firebase 单例类以减少 Android 应用程序开发代码行

c++ - 未找到 : You need to find "" to view the source for the current call stack frame

java - 如何在 Android Studio 中正确创建从 AAR 导入的 Android 库模块?

javascript - 在 grunt/requirejs 构建期间设置/取消设置调试标志

c# - 为什么不 mc :Ignorable work for the Password property? 我该怎么办?