Xamarin Android应用程序没有达到断点

时间:2016-09-01 12:49:33

标签: c# android debugging visual-studio-2015 xamarin.android

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

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

目前不会遇到断点。包含此断点的模块尚未加载或无法获得断点地址。 位置:MainActivity.cs第36行第10个字符(' CoursesAndroid.MainActivity._buttonPrev_Click(object sender,EventArgs e)')

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

  1. 确保在项目属性中选中使用共享运行时复选框 位置:项目属性=> Android选项=>包装标签=>使用共享运行时。
  2. 检查&取消选中使用快速部署(仅限调试模式)复选框。 项目 位置:属性=> Android选项=>打包标签=>使用快速部署(仅限调试模式)
  3. 将调试器选项设置为Xamarin(默认)和&微软。 位置:属性=> Android选项=>打包标签=>调试程序
  4. 删除obj& bin项目目录中的目录,并重建和运行应用程序。
  5. 除了在重新安装之前删除设备管理器中的所有隐藏项目外,还要卸载并重新安装Hyper-V。
  6. 我在这里不知所措任何任何帮助都将非常感激。如果需要其他信息,请不要犹豫,我会尽力回答。

    我正在使用的东西:

    1. Visual Studio 2015 Update 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)
    5. 项目属性设置:

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

      包装标签

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

        1. 关联:无(默认)
        2. 跳过关联装配:空白(默认)
        3. 其他支持的编码:全部未选中(默认)
        4. 高级选项卡

          1. 支持的体系结构:全部选中(默认)
          2. Java Max堆大小:为空(默认)
          3. 其他Java选项:为空(默认)
          4. 其他mondroid参数:为空(默认)
          5. 发现其他信息 - 2016年9月1日

            与此帖相关的帖子Using Microsoft debugger with Xamarin Android提供了有关使用 Microsoft Xamarin 调试程序之间差异的信息。 Microsoft 调试程序适用于本机应用程序, 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/assemblies/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/.override

            09-01 10:40:56.572 W / monodroid(2763):尝试从以下位置加载sgen:/data/data/CoursesAndroid.CoursesAndroid/files/.override/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):试图加载来自:/ data / app-lib / CourseAndroid.CoursesAndroid-2 / libmonosgen-2.0.so

            的sgen

            09-01 10:40:56.572 W / monodroid(2763):尝试从以下日期加载sgen:/data/data/CoursesAndroid.CoursesAndroid/files/.override/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失败:library" /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 /安装/单声道86 / LIB /单声道/ AOT-缓存/ 86 / mscorlib.dll.so'找不到:dlopen失败:library" /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):Config尝试解析:' / Users / builder / data / lanes / 3540 / 1cf254db / source / monodroid / builds / install / mono- 86 /等/单声道/组件/ mscorlib程序/ mscorlib.config'

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

3 个答案:

答案 0 :(得分:4)

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

以下是包含修复的信息的帖子。

Xamarin Forms Android App Crashes Running Debug with VS Android Emulator

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

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

  1. 项目属性=> Android Options =>使用快速部署(仅限调试模式)未选中
  2. 项目属性=> Android Options =>调试器设置为 Xamarin
  3. 我希望这篇文章可以帮助任何有调试问题的人。

    快乐的编码!!

答案 1 :(得分:0)

您的帖子确实有助于解决我遇到的类似问题。查看我遇到的问题的详细信息http://forums.xamarin.com/discussion/comment/223723

答案 2 :(得分:-1)

我刚刚cckcked csproj文件(Visual Studio)。平台定义错误:

PropertyGroup Condition =" ' $(配置)| $(平台)' =='调试| AnyCPU' "

PropertyGroup Condition =" ' $(配置)| $(平台)' =='发布| AnyCPU' "

在Xamarin项目属性中:x86

我在csproj文件中将AnyCPU变为x86。现在它正在为我工​​作。

旧的解决方法对我不起作用。

看起来像是xamarin的错误