Xamarin Android 应用程序未达到断点

Cal*_*son 1 c# debugging android xamarin.android visual-studio-2015

我只是为了一个项目的工作和个人利益而进入 xamarin android 开发,我遇到了调试问题。我的项目只是一个 android 空白应用程序项目。我添加了 2 个按钮和一个名为 buttonPrev、buttonNext 和 textTitle 的 TextView。单击上一个按钮将 textTitle 文本设置为“Prev Clicked”,下一个按钮将 textTitle 更改为“Next Clicked”。在 buttonPrev_Click 事件处理程序中,我设置了一个断点。一旦我在 android 模拟器中运行应用程序,这个断点就会变成一个禁用的断点。

我目前遇到的问题是,当我设置断点时,代码左侧的断点图标是禁用的断点。将鼠标悬停在未被击中的禁用断点上时,我得到以下消息。

当前不会命中断点。包含此断点的模块尚未加载或无法获取断点地址。位置:MainActivity.cs line 36 character 10 ('CoursesAndroid.MainActivity._buttonPrev_Click(object sender, EventArgs e)')

我通过互联网上的研究尝试过的事情。

  1. 确保在项目属性中选中Use Shared Runtime复选框。
    位置:项目属性=>Android 选项=>打包选项卡=> 使用共享运行时。
  2. 选中和取消选中使用快速部署(仅限调试模式)复选框。项目位置:属性=>Android 选项=>打包选项卡=>使用快速部署(仅限调试模式)
  3. 将调试器选项设置为 Xamarin(默认)和 Microsoft。位置:属性=>Android 选项=>打包选项卡=>调试器
  4. 删除项目目录中的obj&bin目录,并重新构建并运行应用程序。
  5. 除了在重新安装之前删除设备管理器中的所有隐藏项目之外,还卸载和重新安装 Hyper-V。

我在这里不知所措,任何帮助将不胜感激。如果需要更多信息,请不要犹豫,我会尽力回答。

我正在使用的东西:

  1. Visual Studio 2015 更新 3 - 版本 14.0.25425.01
  2. Android SDK - Android 7.0 (API 24)
  3. 适用于 Android 的 Visual Studio 模拟器
  4. 模拟器设备配置文件:5" KitKat (4.4) XXHDPI Phone API Level 19 (KitKat, 4.4)

项目属性设置:

注意:这些是Android 选项部分中的设置。

包装标签

  1. 使用共享运行时:选中
  2. 使用快速部署(仅限调试模式):选中
  3. 为每个选定的 ABI 生成一个包(.apk):未选中(默认)
  4. 启用 Multi-Dex:未选中(默认)
  5. 启用 Progaurd:未选中和禁用(不能使用和默认)
  6. 启用开发人员检测(调试和分析):选中(默认)
  7. 调试器:设置为Microsoft(默认设置为 Xamarin)

链接器选项卡

  1. 链接:无(默认)
  2. 跳过链接程序集:空白(默认)
  3. 其他支持的编码:全部未选中(默认)

高级选项卡

  1. 支持的架构:全部选中(默认)
  2. Java 最大堆大小:空(默认)
  3. 附加 Java 选项:空(默认)
  4. 额外的 mondroid 参数:空(默认)

发现附加信息 - 2016 年 9 月 1 日

这篇文章使用Microsoft调试器与Xamarin的Android这是与此相关的职位有关于使用之间的差异信息微软Xamarin调试器。在微软的调试器是本机应用程序与Xamarin调试器是用于管理应用程序。使用Microsoft调试器和Xamarin调试器的行为略有不同。使用Xamarin调试器时,断点不会自行禁用,但在Microsoft调试器禁用自身且未命中的情况下仍不会命中。这对我来说很有意义,所以我将设置保留在Xamarin 上对于调试器。我还注意到,在使用Xamarin调试器时,调试位置工具栏中的附加进程项是空的,我什至不在调试模式下,应用程序也没有运行。所以问题是它不能附加到调试器。以下是运行应用程序时在 Visual Studio 中设置为“调试”的输出窗口中的附加信息。以粗体突出显示的行我认为可能是由于找不到程序集而导致的问题。

调试输出窗口信息

Android 应用程序正在调试。无法连接到调试器。09-01 10:22:50.172 D/Mono(2431):配置尝试解析:'/Users/builder/data/lanes/3540/1cf254db/source/monodroid/builds/install/mono-x86/etc/mono/程序集/mscorlib/mscorlib.config'.09-01 10:40:57.644 W/monodroid(2796): 试图从:/data/data/CoursesAndroid.CoursesAndroid/files/ 加载 sgen。覆盖/links/libmonosgen-2.0.so

09-01 10:40:56.532 D/dalvikvm(2763):延迟启用 CheckJNI

09-01 10:40:56.564 D/dalvikvm(2763):尝试加载 lib/data/app-lib/CoursesAndroid.CoursesAndroid-2/libmonodroid.so 0xa9037000

09-01 10:40:56.564 D/dalvikvm(2763):添加了共享库/data/app-lib/CoursesAndroid.CoursesAndroid-2/libmonodroid.so 0xa9037000

09-01 10:40:56.564 W/monodroid(2763):使用覆盖路径:/data/data/CoursesAndroid.CoursesAndroid/files/。覆盖

09-01 10:40:56.568 W/monodroid(2763):使用覆盖路径:/storage/emulated/0/Android/data/CoursesAndroid.CoursesAndroid/files/。覆盖

09-01 10:40:56.572 W/monodroid(2763):尝试从以下位置加载 sgen:/data/data/CoursesAndroid.CoursesAndroid/files/。覆盖/libmonosgen-2.0.so

09-01 10:40:56.572 W/monodroid(2763):尝试从以下位置加载 sgen:/storage/emulated/0/Android/data/CoursesAndroid.CoursesAndroid/files/。覆盖/libmonosgen-2.0.so

09-01 10:40:56.572 W/monodroid(2763):尝试从以下位置加载 sgen:/data/app-lib/CoursesAndroid.CoursesAndroid-2/libmonosgen-2.0.so

09-01 10:40:56.572 W/monodroid(2763):尝试从以下位置加载 sgen:/data/data/CoursesAndroid.CoursesAndroid/files/。覆盖/links/libmonosgen-2.0.so

09-01 10:40:56.572 W/monodroid-debug(2763):尝试使用选项初始化调试器:--debugger-agent=transport=dt_socket,loglevel=0,address=127.0.0.1:8963,server=y ,嵌入=1

09-01 10:40:56.736 W/monodroid-debug(2763):接受的标准输出连接:43

09-01 10:40:57.496 D/Mono(2763):图像地址 mscorlib[0xb92dafe0]->mscorlib.dll[0xb92da2a0]:1

09-01 10:40:57.500 D/Mono(2763):找不到 AOT 模块“mscorlib.dll.so”:dlopen 失败:库“/data/app-lib/CoursesAndroid.CoursesAndroid-2/libaot-mscorlib.dll .so”未找到

09-01 10:40:57.500 D/Mono(2763): AOT 模块'/Users/builder/data/lanes/3540/1cf254db/source/monodroid/builds/install/mono-x86/lib/mono/aot-cache /x86/mscorlib.dll.so' 未找到:dlopen 失败:未找到库“/data/app-lib/CoursesAndroid.CoursesAndroid-2/libaot-mscorlib.dll.so”

09-01 10:40:57.500 D/Mono(2763):配置尝试解析:'mscorlib.dll.config'。

09-01 10:40:57.500 D/Mono(2763):配置尝试解析:'/Users/builder/data/lanes/3540/1cf254db/source/monodroid/builds/install/mono-x86/etc/mono/程序集/mscorlib/mscorlib.config'。

09-01 10:40:57.512 D/Mono (2763):程序集 mscorlib[0xb92dafe0] 添加到域 RootDomain,ref_count=1

Cal*_*son 5

经过更多的挖掘,我找到了我自己问题的答案。这是我解决问题的方法。

这是包含有关修复程序信息的帖子。

Xamarin Forms Android 应用程序在使用 VS Android 模拟器运行调试时崩溃

Visual Studio中模拟器的Android Hyper-V中使用的虚拟机。问题是在创建虚拟机时,没有正确设置用于调试的处理器设置。因此,要解决此问题,必须设置虚拟机处理器的设置以允许进行调试。

还要确保设置了以下项目属性。

  1. 项目属性 => Android 选项 => 使用快速部署(仅限调试模式)未选中
  2. 项目属性 => Android 选项 => 调试器设置为Xamarin

我希望这篇文章可以帮助任何在调试方面遇到问题的人。

快乐编码!!