Skip to content

Xamarin.Android 9.4.0.34

Pre-release
Pre-release
Compare
Choose a tag to compare

Xamarin.Android 9.4.0.34 was released to the Preview updater channel of Visual Studio 2019 for Mac.

Update June 25, 2019: Xamarin.Android 9.4.0.34 is now also available as part of Visual Studio 2019 version 16.2 Preview 3.

Corresponding Visual Studio 2019 Preview release notes

What's new

Issues fixed in Xamarin.Android 9.4.0.34

Application Mono Framework behavior on device and emulator and AOT compilation

This version of Xamarin.Android updates the Mono 6.0 runtime and class libraries from Commit 3dc72cfe to Commit c6edaa62, adding 30 new commits.

Changes relevant to Xamarin.Android:

  • GitHub 3120: Projects with AOT Compilation enabled would fail to build with "error XA3001: Could not AOT the assembly".
  • Mono GitHub 13231: Starting in Xamarin.Android 9.4.0.17, some usage scenarios could potentially lead to a native fault due to a race condition related to marshaling a delegate to pass to unmanaged code while finalizing another delegate.
  • Mono GitHub 14214: Starting in Xamarin.Android 9.4.0.17, HttpClient.SendAsync() could fail when attempting requests with response bodies larger than 2 gigabytes due to "Cannot write more bytes to the buffer than the configured maximum buffer size."

Application and library build process

  • GitHub PR 3128, GitHub PR 3172: Building a project with Xamarin.Android 9.3 and then building the same project with Xamarin.Android 9.4 without cleaning the project between the builds would fail with "error: duplicate class: mono.MonoPackageManager_Resources ... public class MonoPackageManager_Resources {".
  • GitHub PR 3146: Attempting to submit an Android App Bundle generated by setting $(AndroidPackageFormat) to aab would result in a "The Android App Bundle was not signed." error on Google Play because the build process did not yet automatically sign the bundle with an algorithm that Google Play would accept.
  • GitHub PR 3138: Starting in Xamarin.Android 9.4.0.17, the incremental debug build times with Use Shared Runtime increased because the GenerateJavaStubs task was was performing additional work to generate the new style of unmanaged type mappings for the pre-built shared runtime APK. Xamarin.Android 9.4.0.34 no longer does that extra build work. Instead, the deployed applications now load the pre-built type mappings for the shared runtime APK from that APK, as they did in Xamarin.Android 9.3 and earlier.
  • GitHub PR 3174: Builds could fail due to "error APT0000: failed parsing overlays." for projects with Use incremental packaging system (aapt2) enabled. Xamarin.Android 9.4.0.34 updates the included aapt2 executable to version 3.4.1-5326820 to resolve this issue.
  • Builds could occasionally fail during the ResolveXamarinAndroidTools task with "Did not find Xamarin.Android at path ... warning XA5300: Unable to determine Xamarin.Android version" due to the order in which MSBuild ran the ResolveXamarinAndroidTools task relative to the DetectIfAppWasUninstalled task.
  • @(AndroidAsset) MSBuild items that used %(LogicalName) metadata with relative paths were not copied to the correct intermediate output location during the build.

Application behavior on device and emulator

  • GitHub 3169: Applications could hit an exception similar to "Failed resolution of: Landroid/support/v7/appcompat/R$drawable; ---> Java.Lang.ClassNotFoundException: Didn't find class "android.support.v7.appcompat.R$drawable" on path: DexPathList" in projects that had Use incremental packaging system (aapt2) enabled.

Known issues in Xamarin.Android 9.4.0.34

  • GitHub 3168: The new $(AndroidEnableProfiledAot) option to enable compiling a specific subset of methods to unmanaged code is not yet ready to try on Windows in this version. The unmanaged compilation step fails on Windows with "Assertion at ... /mono/mini/aot-compiler.c:11933, condition `res == 1' not met".

OSS core

The commercial build for this version is based on the bundle from the open-source xamarin-android-d16-2 build #32.