Archive for the ‘teaching’ Category

As part of my .NET 301 Advanced class at the fantasticĀ Eleven Fifty Academy, I teach Xamarin development. It’s sometimes tough, as every student has a different machine. Some have PCs, others have Macs running Parallels or Bootcamp. Some – many – have Intel processors, while others have AMD. I try to recommend students come to the class with Intel processors, due to the accelerated Android emulator benefit Intel’s HAXM – Hardware Acceleration Manager – provides. This blog entry is a running list of how I’ve solved getting the emulator running on so many machines. I hope the list helps you, too.

This list will be updated from time to time, as I find new bypasses. At this time, the list is targeted primarily for machines with an Intel processor. Those with AMD and Windows are likely stuck with the ARM emulators. Umm, sorry. I welcome solutions, there, too, please!

Last updated: December 4, 2017

Make sure you’re building from a path that’s ultimate length is less than 248 characters.

That odd Windows problem of long file paths bites us again here. Many new developers tend to build under c:\users\username\documents\Visual Studio 2017\projectname. Add to that the name of the project, and all its subfolders, and the eventual DLLs and executable are out of reach of various processes.

I suggest in this case you have a folder such as c:\dev\ and build your projects under there. That’s solved many launch and compile issues.

Use the x86 emulators.

If you have an Intel processor, then use the x86 and x64 based emulators instead of ARM. They’re considerably faster, as long as you have a) an Intel processor with virtualization abilities, which I believe all or most modern Intel processors do, and b) Intel’s HAXM installed.

Make sure VTI-X / Hardware Virtualization is enabled.

Intel’s HAXM – which you can download here – won’t run if the processor’s virtualization is disabled. You need to tackle this in the BIOS. That varies per machine. Many devices seem to chip with the feature disabled. Enabling it will enable HAXM to work.

Uninstall the Mobile Development with .NET Workload using the Visual Studio Installer, and reinstall.

Yes, I’m suggesting Uninstall + Reinstall. This has worked well in the class. Go to Start, then Visual Studio Installer, and uncheck the box. Restart afterwards. Then reinstall, and restart.

Mobile Development Workload Screenshot

Use the Xamarin Android SDK Manager.

The Xamarin team has built a much better Android SDK Manager than Google’s. It’s easy to install HAXM, update Build Tools and Platforms, and so forth. Use it instead and dealing with tool version conflicts may be a thing of the past.

Make sure you’re using the latest version of Visual Studio.

Bugs are fixed all the time, especially with Xamarin. Make sure you’re running the latest bits and your problems may be solved.

Experiment with Hyper-V Enabled and Disabled.

I’ve generally had issues with virtualization when Hyper-V is enabled. If you’re having trouble with it enabled, try with it disabled.

To enable/disable Hyper-V, go to Start, then type Windows Features. Choose Turn Windows Features On or Off. When the selection list comes up, toggle the Hyper-V feature accordingly.

Note: You may need to disable Windows Device Guard before you can disable Hyper-V. Thanks to Matt Soucoup for this tip.

Use a real device.

As a mobile developer, you should never trust the emulators to reflect the real thing. If you can’t get the emulators to work, and even if you can, you have the option of picking up an Android phone or tablet for cheap. Get one and test with it. If you’re not clear on how to set up Developer Mode on Android devices, it’s pretty simple. Check out Google’s article on the subject.

Try Xamarin’s HAXM and emulator troubleshooting guide.

The Xamarin folks have a guide, too.

If all else fails, use the ARM processors.

This is your last resort. If you don’t have an Intel processor, or a real device available, use the ARM processors. They’re insanely slow. I’ve heard there’s an x86 emulator from AMD, yet it’s supposedly only available for Linux. Not sure why that decision was made, but moving on… šŸ™‚

Have another solution?

Have a suggestion, solution, or feature I’ve left out? Let me know and I’ll update!


“If you can read this, thankĀ a teacher.” That was a poster in my 3rd grade classroom. They never said it would be “read this code.” Now that I’m teaching others to code, I can see why teachers continue to do their work, even if the career’s financial benefits aren’t in line with the value they add to society.
TakeĀ TEKY for instance. 50 people started to learn to code. 35 graduated after 9 weeks of instruction, and 7 more weeks of practicing what was preached. The teaching staff was paid a fixed amount. Those students? Off to careers paying $60K+ annually. Even for $100K of instruction – I don’t know what the total was – those students will have a huge impact on the economy many times that of the instructional investment. They’ve been launched from the nest, with incredible potential to live a better life than what the coal industry that abandoned them could offer. So the teachers hope for their “devlings,” and will teach another class to read and write code, and watch them grow and leave again.
It’s a bit heartbreaking. I still remember the jokes we told, the laughs and difficulties we shared as they learned, struggled, got up again and again, then got it. My fellow instructors I’m sure endured the same. You *want* them to succeed. And you’ve made dozens of friends along the way. They’re still your kids, though. They’re going to live their own lives, as careers, and once in a while you’ll reach out to each other to see how you’re doing. They’ll do great – you know that. Like a parent. They’re thankful – but they have a job to do, so they go do it. That pool of connections, of successes, grows. And I feel all teachers are greatly humbled by it. That’s real world change, simply by providing time, mind, and experience.
And maybe, someday, those students will become teachers, and receive the same joy and sense of pride we teachers do.
Dammit, “Cats in the Cradle” is in my head now.
Links to the graduation and open house videos:
Very proud!