31

I have a basic Xamarin Forms app I created. It works fine against the iOS simulator.

However when I try and run with a VS Android Emulator (5.1in Marshmallow) it crashes every time upon opening. Even when I try and run without debugging. Below is the error I keep seeing:

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].

I am running VS2015 + Xamarin Forms 2.0 latest and greatest.

What's going on here?

aherrick
  • 19,799
  • 33
  • 112
  • 188
  • Are you able to run your app with another emulator? – Coding with Cookie Jan 16 '16 at 07:40
  • 3
    I have the same problem but only in debug mode (release mode and concrete smartphone are working fine). Another message is also written in Xamarin log: "Could not connect to the debugger". Just for reference, there is a thread on Xamarin forum talking about it without any solution for now (https://forums.xamarin.com/discussion/50696/could-not-connect-to-the-debugger?) – Tok' Jan 18 '16 at 08:14
  • Thanks TOK. Yeah I'm able to run it with the actual phone so that is sufficient for now – aherrick Jan 18 '16 at 14:06

1 Answers1

92

In short:

1. "Could not connect to the debugger" issue (Android app starts and immediately closes, debugging stops):

  1. Close the Android simulator window to shut down the virtual machine.
  2. Start the "Hyper-V Manager" (Microsoft program to manage virtual machines in Windows, you have it installed)
  3. Select the emulator you are trying to use
  4. Right-click for context menu, hit Settings
  5. In the settings dialog expand Processor
  6. Click Compatibility
  7. In the right pane set checkbox “Migrate to a physical computer with a different processor version
  8. Start the debugging in Visual Studio to restart the simulator

2. The missing libaot-mscorlib.dll.so issue:

Go to the properties of the Android project, hit tab “Android options”, and unselect “Use Fast Deployment”.

Source: Fix for “could not connect to the debugger” while deploying Xamarin Forms apps to the Visual Studio Android Emulator (VS2015)

This issue only seems to be occurring on the newer generation of processors, which explains why I never saw it before.

This happens because of an incompatibility between the Android images for the Visual Studio emulator for Android and the newer generations of Intel processors as of year 2015.

This solution is also published here: Visual studio android emulator will not start fully

UPDATE November 29, 2017

You should really consider moving to the Android emulators provided by Google via Android Studio for Windows. Newer Android API levels (24 and above) are only available there and Microsoft does not seem to care.

Unfortunately, we have no plans to publish Android images past 4.4. We recommend that you try Google or GenyMotion’s emulator for future images of the Android operating system.

Zverev Evgeniy
  • 3,643
  • 25
  • 42
  • 1
    Excellent - option 1 resolved my issue (any app would start and immediately close) – DilbertDave Jul 14 '16 at 09:46
  • 1
    @aherrick Sorry to spoil your comment. I switched the suggested routines so the one that helped you is now number one. – Zverev Evgeniy Jul 18 '16 at 12:23
  • 1
    The first solutions has solved the issue for me! Thanks!! – Marco Rinaldi Nov 04 '16 at 20:56
  • How does one have to find out this magic checkbox in Hyper-V Manager? I mean, if i install VS, Xamarin, required Android things, and debugging of the empty sample project fails, normally i have to go there and check this option. What were they thinking?! – Rast Dec 29 '16 at 23:55
  • @Rast It's a matter of analyzing adb log I think. The problem only arises on the newer Intel CPUs. Those who are familiar with the beast named Virtualization and its implementation by Intel for Windows has a chance of guessing such a thing. The problem is that `they` are not thinking because `they` do not exist. It's a problem somewhere in between Intel and Microsoft. Worst kind of luck. Years can pass before Intel and Microsoft agree on the matter who is going to fix a line or two in their code. – Zverev Evgeniy Dec 31 '16 at 19:33
  • Tick from me, thanks. Changing the compatibility on Processor worked –  Feb 14 '17 at 16:50
  • Thank you so much, brilliant! – MirlvsMaximvs Mar 18 '17 at 00:08
  • Saved a lot of time! – vibhu Nov 29 '17 at 13:37
  • 1
    @vibhu You should really consider moving to the new emulators provided by google (Android Studio for windows). New android APIs (24 and above) will only be available there. Microsoft does not seem to continue supporting their emulator. – Zverev Evgeniy Nov 29 '17 at 14:43
  • @Zverev - Thank you so much for this advice – vibhu Nov 29 '17 at 16:05