Xamarin.Android 9.1

Last Update 2018-Nov-13

System Requirements | What's New | Blogs | Open Source


  • Visual Studio 2017 version 15.9 – Visual Studio Installer
  • Visual Studio 2017 for Mac version 7.7 Preview 5 – Beta updater channel (The current Xamarin.Android SDK package is planned to move from Preview to Release with no changes when Visual Studio 2017 for Mac version 7.7 moves from Preview to Release.)

What's New in this Release

Build and Deployment Performance Improvements

This release includes several improvements to incremental build and deployment times. For example, in a test development environment, the incremental build time after modifying one XAML page in the SmartHotel360 sample app has dropped from 11 seconds to 9 seconds, and the corresponding deployment time has dropped from 9 seconds to 5 seconds.

  • See the Build Performance Results page on the project wiki for additional comparisons as well as updates about the on-going work to continue to improve performance.
  • Follow along with the latest numbers from the continuous integration builds.

Specific Improvements

  • GitHub PR 1938: ResolveSdks now caches the output of java -version and javac -version in memory, speeding up builds with multiple Xamarin.Android projects.
  • GitHub PR 1957: Design-time builds were preventing future full builds from building incrementally.
  • GitHub PR 2088: Fix incremental builds for Xamarin.Forms projects.
  • GitHub PR 2093: Improve LINQ usage in ConvertResourcesCases
  • GitHub PR 2130: Move inline C# MSBuild task to a compiled assembly
  • GitHub PR 2131: Remove unnecessary MSBuild target, simplify inputs to _CompileToDalvik
  • GitHub PR 2132: The _BuildLibraryImportsCache target was always running
  • GitHub PR 2140: Leave classes.zip uncompressed, to speed up javac and dx
  • GitHub PR 2157: Build Xamarin Java.Interop as a Xamarin.Android class library rather than a Portable Class Library. This reduces the number of assemblies references that need to be resolved during app builds.

Release History

You can learn more about how we ship our releases in the Visual Studio 2017 Release Rhythm document.

November 13, 2018 - Xamarin.Android

This version is included in the Visual Studio 2017 version 15.9 and Visual Studio for Mac version 7.7 Preview 5 releases.

Issues Fixed

  • GitHub 1584: The Xamarin.Android developer tools in Visual Studio 2017 on Windows included a separate copy of the fairly large API documentation .xml file for each target Android API level. A new capability in the latest Visual Studio 2017 release means that now only one copy of the file is needed.
  • GitHub 1766: Builds did not provide a warning to caution users that Google Play now requires new apps and app updates to target at least Android 8.0 (API level 26).
  • GitHub 1770: Some warnings from AAPT were being treated as errors in projects using experimental aapt2 support.
  • GitHub 1828: Updating NuGet packages could leave intermediate build files in a state where a Rebuild was required.
  • GitHub 1830: App startup performed more string allocations than necessary, increasing the total time to launch.
  • GitHub 1931: AndroidClientHandler was using commas rather than spaces in the HTTP User-Agent header.
  • GitHub 1958: Design-time builds were preventing future full builds from building incrementally.
  • GitHub 1960: Building two or more Xamarin.Android projects at the same time could lead to unexpected warnings due to a shared temporary file.
  • GitHub PR 1971: Invalid Android resource files caused a generic exception message during design-time builds rather than a more informative error message.
  • GitHub PR 1973: Enabling $(AndroidEnableDesugar) caused a runtime crash unless ProGuard or multidex was also enabled.
  • GitHub PR 1984: Apps deployed via fast deployment would crash during startup if Xamarin.Android had been updated or if the Mono shared runtime had been manually uninstalled between deployments.
  • GitHub 1985: The $(AndroidResgenExtraArgs) MSBuild property caused unclear error message in projects using experimental aapt2 support rather than indicating that the property was no longer applicable. Also, new aapt2 properties $(AndroidAapt2CompileExtraArgs) and $(AndroidAapt2LinkExtraArgs) were not yet available.
  • GitHub 2047: In projects using the experimental aapt2 support, only one resource ID was being generated when two resources had names that were the same except for capitalization.
  • GitHub 2060: Per-ABI APKs from projects that had both $(AndroidUseApkSigner) and $(AndroidCreatePackagePerAbi) set to true were not signed.
  • GitHub PR 2084: The chances of hitting a PathTooLongException increased in Xamarin.Android 9.0 due to the new subdirectories that preserve outputs from previously selected target frameworks (GitHub PR 1628).
  • GitHub 2183: Builds could fail on a ".../obj/Release/lp/ is not empty" error if the Updating Resources background build step was running when a build was started.
  • GitHub 2205: Android resource conflicts could occur after rebuilds in projects referencing the Xamarin.GooglePlayServices.Basement NuGet package if the projects included a google-services.json file and had experimental aapt2 support enabled.
  • GitHub PR 2249: Builds did not provide a warning to caution users that support for the armeabi value in $(AndroidSupportedAbis) would be removed in the next releases after Visual Studio 2017 version 15.9 and Visual Studio 2017 for Mac version 7.7.
  • GitHub PR 2258: A few build tasks were generating warnings that did not include numbered warning codes. A few other tasks were emitting diagnostic information as warnings rather than debug messages.
  • GitHub PR 2329: Builds did not provide compilation warnings on individual types to caution users that support for the v2.3, v4.0.3, v4.1, v4.2, and v4.3 values in $(TargetFrameworkVersion) would be removed in the next releases after Visual Studio 2017 version 15.9 and Visual Studio 2017 for Mac version 7.7.
  • A few different incompatibility issues and unclear error messages could happen when using the Microsoft Mobile OpenJDK Distribution Preview or when no JDK was installed.
  • Changing the android:versionCode app manifest attribute to a lower number would lead to an "[INSTALL_FAILED_VERSION_DOWNGRADE]" error during deployment.
  • cmd.exe windows were opening in some cases for steps that launched tools from the Android toolchain.

Integrated Mono Features/Fixes

Xamarin.Android uses Mono 5.14 Commit 969357ac


Your feedback is important to us. If there are any problems with this release, check our GitHub Issues, Xamarin.Android Community Forums and Visual Studio Developer Community for existing issues. For new issues within the Xamarin.Android SDK, please report a GitHub Issue. For general Xamarin.Android experience issues, let us know via the Report a Problem option found in your favorite IDE via Help > Report a Problem.


A big Thank You! to contributors who made improvements in this release:

OSS Core

Xamarin.Android 9.1 is based on the open-source Xamarin.Android repositories:

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.