Xamarin Forms Android App Crashes Running Debug with VS Android Emulator
Asked Answered
H

1

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?

Hyp answered 14/1, 2016 at 21:33 Comment(3)
Are you able to run your app with another emulator?Dupont
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 (forums.xamarin.com/discussion/50696/…)Arsenal
Thanks TOK. Yeah I'm able to run it with the actual phone so that is sufficient for nowHyp
G
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.

Gustie answered 3/3, 2016 at 17:59 Comment(10)
Excellent - option 1 resolved my issue (any app would start and immediately close)Knee
@Hyp Sorry to spoil your comment. I switched the suggested routines so the one that helped you is now number one.Gustie
The first solutions has solved the issue for me! Thanks!!Joesphjoete
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?!Tarah
@Tarah 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.Gustie
Tick from me, thanks. Changing the compatibility on Processor workedTulley
Thank you so much, brilliant!Quarters
Saved a lot of time!Buckthorn
@Buckthorn 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.Gustie
@Zverev - Thank you so much for this adviceBuckthorn

© 2022 - 2024 — McMap. All rights reserved.