我刚刚进入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)')
我在这里不知所措任何任何帮助都将非常感激。如果需要其他信息,请不要犹豫,我会尽力回答。
我正在使用的东西:
注意:这些是 Android选项部分中的设置。
与此帖相关的帖子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.so09-01 10:40:56.572 W / monodroid(2763):试图加载来自:/ data / app-lib / CourseAndroid.CoursesAndroid-2 / libmonosgen-2.0.so
的sgen09-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
答案 0 :(得分:4)
经过多次挖掘,我找到了自己问题的答案。以下是我解决问题的方法。
以下是包含修复的信息的帖子。
Xamarin Forms Android App Crashes Running Debug with VS Android Emulator
适用于Android的Visual Studio模拟器使用Hyper-V中的虚拟机。问题是,创建虚拟机时,未正确设置处理器设置以进行调试。因此,要解决此问题,必须设置虚拟机处理器的设置以允许进行调试。
还要确保设置了以下项目属性。
我希望这篇文章可以帮助任何有调试问题的人。
快乐的编码!!
答案 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的错误