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

31

我有一个基本的Xamarin Forms应用程序,它可以在iOS模拟器上正常运行。

但是当我尝试在VS Android模拟器(5.1in Marshmallow)上运行时,每次打开都会崩溃。即使我尝试不带调试运行也是如此。下面是我一直看到的错误:

01-14 16:22:10.290 D/Mono    ( 1366): AOT module 'mscorlib.dll.so' not found: dlopen failed: library "/data/app-lib/App3.Droid-2/libaot-mscorlib.dll.so" not found
01-14 16:22:10.290 D/Mono    ( 1366): AOT module '/Users/builder/data/lanes/2512/d3008455/source/monodroid/builds/install/mono-x86/lib/mono/aot-cache/x86/mscorlib.dll.so' not found: dlopen failed: library "/data/app-lib/App3.Droid-2/libaot-mscorlib.dll.so" not found
01-14 16:22:10.294 D/Mono    ( 1366): Unloading image data-0x9659b010 [0xb93d5940].

我正在使用VS2015 + Xamarin Forms 2.0的最新版本。

这里发生了什么?


你能否使用另一个模拟器运行你的应用程序? - Coding with Cookie
3
我有同样的问题,但只在调试模式下出现(发布模式和具体的智能手机都可以正常工作)。Xamarin日志中还写着另一条信息:"无法连接到调试器"。仅供参考,Xamarin论坛上有一个讨论此问题的帖子,目前还没有任何解决方案。(https://forums.xamarin.com/discussion/50696/could-not-connect-to-the-debugger?) - Tok'
谢谢 TOK。是的,我能够在实际手机上运行它,现在这已经足够了。 - aherrick
1个回答

92

简而言之:

1. “无法连接到调试器”问题(Android应用程序启动后立即关闭,调试停止):

  1. 关闭Android模拟器窗口以关闭虚拟机。
  2. 启动“Hyper-V Manager”(Windows中管理虚拟机的Microsoft程序,您已安装它)
  3. 选择您要使用的模拟器
  4. 右键单击以显示上下文菜单,点击“设置”
  5. 在设置对话框中展开“处理器”
  6. 点击“兼容性”
  7. 在右侧窗格中选中复选框“将迁移到具有不同处理器版本的物理计算机”
  8. 在Visual Studio中启动调试以重新启动模拟器

2. 缺失的libaot-mscorlib.dll.so问题:

转到Android项目的属性,点击“Android选项”选项卡,并取消选择“使用快速部署”。

来源: 修复在将Xamarin Forms应用程序部署到Visual Studio Android模拟器(VS2015)时遇到“无法连接到调试器”的问题

这个问题似乎只会发生在新一代处理器上,这也解释了为什么我以前从未见过它。

这是因为Visual Studio模拟器的Android映像与2015年以后的新一代英特尔处理器之间存在不兼容性。

此解决方案也发布在这里:Visual studio android emulator will not start fully

更新于2017年11月29日

您真的应该考虑使用通过Windows的Android Studio提供的Android模拟器。较新的Android API级别(24及以上)仅在那里提供,而微软似乎并不关心

很遗憾,我们没有计划发布Android 4.4之后的镜像。我们建议您尝试谷歌或GenyMotion的模拟器来获取未来版本的Android操作系统镜像。

1
非常好 - 选项1解决了我的问题(任何应用程序都会启动并立即关闭)。 - DilbertDave
1
@aherrick 很抱歉打扰了您的评论。我调整了建议的程序,所以帮助您的程序现在排名第一。 - Zverev Evgeniy
1
第一种解决方案已经为我解决了这个问题!谢谢!! - Marco Rinaldi
我收到了你的信息,谢谢。已更改处理器的兼容性。 - user755404
1
@vibhu 你应该考虑使用谷歌提供的新模拟器(适用于Windows的Android Studio)。新的Android API(24及以上版本)只能在那里使用。微软似乎不再支持他们的模拟器。 - Zverev Evgeniy
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接