Xamarin.Android 4.6


Known issue: Immediately after upgrading, users may have trouble loading Xamarin.Android projects. Please restart Xamarin Studio again if you experience this.

Visual Studio Users: You should be prompted with this update when you open a Mono for Android project. You can also check manually in Tools > Options > Mono for Android.

MonoDevelop Users: You should be prompted to upgrade next time you open MonoDevelop, or you can use Help > Check for Updates. IDE support requires Xamarin Studio 4.0. Layout Designer fixes require MonoDevelop 3.0.4.

New Features

  • New product name: Xamarin.Android.
  • New License Editions
    • Free Starter edition supports app packaging store deployment for applications up to 10KB in size.
  • AIDL support.
  • Environment information can be embedded into the .apk.
    • Allows setting diagnostic system properties or environment variables during process startup
    • New AndroidEnvironment build action.
  • New EmbeddedNativeLibrary Build action which causes native libraries (.so files) to be embedded into assemblies.
  • DLL Mapping information (within .dll.config files) will now be automatically included into app packages.
  • The OS X installer is now signed.

Bug fixes

  • GC bugfix for arrays of structs of a certain (unlikely) layout?
  • Sign Xamarin.Android SDK assemblies
  • Expose PhoneNumberFormattingTextWatcher.
  • Support PermissionAttribute.ProtectionLevel.
  • Support [OnSerializing] in System.Runtime.Serialization.Json.dll. [Context]
  • Fix accessibility of ClientBase<TChannel>.ChannelBase<T>. [Context]
  • 1446: Mono.Debugger.Soft.ObjectCollectedException: The requested operation cannot be completed because the object has been garbage collected.
  • 1873: Regression: Mono.Debugging.Evaluation.EvaluatorException: Method `.ctor' not found in type `CollectionDebuggerView`1'.
  • 2246: Exception when SDB calls ToString() on an object.
  • 2456: Resources do not get created when a user name contains @ character.
  • 3276: Mono implementation of HttpWebRequest eats the body of a DELETE request.
  • 3477: native library ABI is now resolved based on Link, then ItemSpec.
  • 3531: GlCullFace (GL_CULL_FACE) is missing from Javax.Microeditions.Khronos.Opengles.GL10.
  • 4642: Sometimes things are rebuilt that aren't out of date.
  • 4904: Improve managedReturn support for .jar binding.
  • 5146: Linking issue when 2 applications share a project reference
  • 5240: Binding output generates MSBuild-parseable error messages.
  • 5397: Support registering the same ACW multiple times.
  • 6312: System.Net.NetworkInformation.Ping.Send() throws InvalidOperationException.
  • 6567: error MSB6006: "generator.exe" exited with code -532462766.
  • 7258: WebRequest.DefaultWebProxy with credentials fails.
  • 7459#c2: Invoke Java.Lang.__TypeRegistrations.RegisterPackages() for additional framework assemblies.
  • 7505 (partial): Add diagnostic output in ResolveAssemblies assembly resolution hiearchy, i.e. "why is assembly A.dll being referenced?!".
  • 7580: Binding a jar produces a casting error that can't be fixed with Metadata.
  • 7599: HttpWebRequest returns 404 because it reuses an old connection to a previous server.
  • 7637: HttpWebRequest.BeginGetResponse() hangs when send request stream is empty
  • 7692: Mono for Android is not detected by Studio.
  • 7762: Jmdns binding issue
  • 7772: Add Dialog.FindViewById<T>(int), Window.FindViewById<T>(int).
  • 7865: Add UsesFeatureAttribute.
  • 7919: [Windows 7 and 8] The application does not builds successfully.
  • 7957: System.Xml.XmlException : 'Text' is an invalid node type.
  • 7966: TimeZoneInfo.FindSystemTimeZoneById() returns null>
  • 7969: do not generate overrides when it shouldn't for method variant property.
  • 7973: Add ApplicationAttribute.LargeHeap property.
  • 8072: WeakReference.Target should return null InvalidOperationException after target has been collected.
  • 8112: Unable to generate bindings for DroidText: Can't implement IComparable.
  • 8137: Add $(JavaOptions), $(JavaMaximumHeapSize) MSBuild properties.
  • 8226: Properly bind Java @Override final methods.
  • 8242: Add SupportsGLTextureAttribute.
  • 8320: Runtime metadata bug with RX.
  • 8339: Disable Compiler Warnings in generated code.
  • 8376: Support Android Resource Aliases.
  • 8406: If activation app fails, error message from installer is cryptic.
  • 8559: TaskScheduler passed with parallel options to Parallel.ForEach() not used correctly.
  • 8781: Publish Android Application not creating an APK.
  • 9193: XmlSerialization not properly deserializing a List.
  • 9340#c9: Don't use aapt --debug-mode. Don't ignore the //application/@android:debuggable attribute in AndroidManifest.xml.
  • 9395: Resource LIbrary Id's.
  • 9531: Segfault in fieldref_encode_signature.
  • 9669: Publish Application in Visual Studio does not use the keystore key.
  • 9696: Cannot bind library due to reference assembly already being used in an assembly.
  • 9768: Enum binding mismatch? Android.Views.InputMethods.InputMethodManager.ToggleSoftInputFromWindow.
  • 585577: BindingSource/BindingList do not hook to PropertyNotified event of INotifyPropertyChanged data sources.

API Changes


Warning: Samsung shipped a broken kernel with Android 2.1, which is not able to support JIT compilation. If you possess a Galaxy-class device with Android 2.1, you will get unexpected results, this is caused by a kernel bug that breaks cache coherency, rendering any engine doing JIT compilation useless. Check with your manufacturer/carrier for an Android 2.2 update.

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.