【发布时间】:2017-01-09 08:49:26
【问题描述】:
我只是为了一个项目的工作和个人利益而进入 xamarin android 开发,我遇到了调试问题。我拥有的项目只是一个 android 空白应用程序项目。我添加了 2 个按钮和一个名为 buttonPrev、buttonNext 和 textTitle 的 TextView。单击上一个按钮将 textTitle 文本设置为“Prev Clicked”,下一个按钮将 textTitle 更改为“Next Clicked”。在 buttonPrev_Click 事件处理程序中,我设置了一个断点。一旦我在 android 模拟器中运行应用程序,这个断点就会变成一个禁用的断点。
我目前遇到的问题是,当我设置断点时,代码左侧的断点图标是禁用的断点。将鼠标悬停在未命中的禁用断点上时,我得到以下消息。
当前不会命中断点。包含此断点的模块尚未加载或无法获取断点地址。 位置:MainActivity.cs 第 36 行字符 10 ('CoursesAndroid.MainActivity._buttonPrev_Click(object sender, EventArgs e)')
我通过互联网研究尝试过的事情。
- 确保在项目属性中选中使用共享运行时复选框。
位置:项目属性=>Android 选项=>打包选项卡=>使用共享运行时。 - 选中和取消选中使用快速部署(仅限调试模式)复选框。 项目 位置:属性=>Android 选项=>打包选项卡=>使用快速部署(仅限调试模式)
- 将调试器选项设置为 Xamarin(默认)和 Microsoft。 位置:属性=>Android 选项=>打包选项卡=>调试器
- 删除项目目录下的obj&bin目录,重新构建运行应用。
- 卸载并重新安装 Hyper-V,并在重新安装之前删除设备管理器中的所有隐藏项目。
我在这里不知所措,任何帮助将不胜感激。如果需要更多信息,请不要犹豫,我会尽力回答。
我正在使用的东西:
- Visual Studio 2015 更新 3 - 版本 14.0.25425.01
- Android SDK - Android 7.0 (API 24)
- 适用于 Android 的 Visual Studio 模拟器
- 模拟器设备配置文件:5" KitKat (4.4) XXHDPI Phone API Level 19(KitKat,4.4)
项目属性设置:
注意:这些是 Android 选项部分中的设置。
包装标签
- 使用共享运行时:选中
- 使用快速部署(仅限调试模式):选中
- 为每个选定的 ABI 生成一个包 (.apk):未选中(默认)
- 启用 Multi-Dex:未选中(默认)
- 启用 Progaurd:未选中和禁用(无法使用和默认)
- 启用开发人员检测(调试和分析):选中(默认)
- 调试器:设置为 Microsoft(默认设置为 Xamarin)
链接器标签
- 链接:无(默认)
- 跳过链接程序集:空白(默认)
- 其他支持的编码:全部未选中(默认)
高级选项卡
- 支持的架构:全部选中(默认)
- Java 最大堆大小:空(默认)
- 其他 Java 选项:空(默认)
- 其他 mondroid 参数:空(默认)
发现更多信息 - 2016 年 9 月 1 日
与这篇文章相关的这篇文章Using Microsoft debugger with Xamarin Android 提供了有关使用 Microsoft 和 Xamarin 调试器之间区别的信息。 Microsoft 调试器适用于本机应用程序,Xamarin 调试器适用于托管应用程序。使用 Microsoft 调试器和 Xamarin 调试器的行为略有不同。使用 Xamarin 调试器,断点不会自行禁用,但在 Microsoft 调试器自行禁用且未命中的情况下仍不会命中。这对我来说很有意义,所以我将 Xamarin 上的设置保留为调试器。我还注意到,当使用 Xamarin 调试器时,Debug Location Toolbar 中附加的进程项是空的,我什至没有处于调试模式并且应用程序没有运行。所以问题是它无法附加到调试器。以下是运行应用程序时在 Visual Studio 中设置为 Debug 的输出窗口的附加信息。以粗体突出显示的行我认为可能是由于找不到程序集而导致的问题。
调试输出窗口信息
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):尝试从以下位置加载 sgen:/data/data/CoursesAndroid.CoursesAndroid/files/。覆盖 /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,服务器=y,嵌入=1
09-01 10:40:56.736 W/monodroid-debug(2763):接受的标准输出连接:43
09-01 10:40:57.496 D/Mono (2763): Image addref 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/assemblies/mscorlib/mscorlib.config'。
09-01 10:40:57.512 D/Mono (2763):程序集 mscorlib[0xb92dafe0] 添加到域 RootDomain,ref_count=1
【问题讨论】:
标签: c# android debugging visual-studio-2015 xamarin.android