Mono For Android 4.4

Installation

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 MonoDevelop 3.0. Layout Designer fixes require MonoDevelop 3.0.4.

New Features

  • Fixed an issue with the license check dialog during installation.
  • Provides preliminary API 17 (JellyBean 4.2) support.
  • armeabi-v7a is the default ABI for Release builds.
  • Debug .apk files include all ABIs by default.
  • Add ActivityAttribute.ParentActivity property.
  • Add ServiceAttribute.IsolatedProcess property.
  • Add PermissionAttributePermissionGroupAttribute, and PermissionTreeAttribute custom attributes.
  • Now string literals in attributes (ActivityAttributeUsesPermissionAttribute etc.) are scanned and @PACKAGE_NAME@ is replaced with the actual package name at packaging time. (see bug #7687)
  • Binding Projects now embed the bound .jar into the binding assembly. (EmbeddedJar and EmbeddedReferenceJar build actions)
  • Library Projects can now contain Android Resources.

4.4.50 Fixes

  • Activation fix for Windows XP
  • Profiler support. (Beta!)
  • Removal of the dreaded UnhandledException handler from Visual Studio
  • .stamp files not being properly closed, leading to FileShare exceptions
  • UI designer improvements in the support for alternative layouts.
  • 7871: Saving a .axml file in a resource folder with qualifiers
  • 8625: Color preview in Project Resources window showing wrong colours
  • 8781: Fix Publish Android Application to pickup the correct PackageName

4.4.54 Fixes

  • Additional activation fix for users running on Windows XP with a wireless-only network connection.

Bug fixes

  • Theoretical GC bug involving a race condition between Mono & Android GC's. Note: we've never seen this in the wild, and have no repro.
  • GC weak reference fix.
  • .jar binding: do not generate overrides when it shouldn't for method variant property.
  • .jar binding: improve obfuscated .jar handling
  • .jar binding: improved Annoation support.
  • Improve product activation on Windows.
  • Throw TypeLoadException if a Type can't be loaded instead of throwing a NullReferenceException.
  • WSDL import.
  • Improved WCF serialization support for collection types
  • Fix binding of OverlayItem.GetMarker() and MapActivity.OnGetMapDataSource() (reported by Goncalo Oliveira).
  • Remove [DebuggerDisplay] attribute from KeyValuePair and DictionaryEntry.
  • Support [OnSerializing] in System.Runtime.Serialization.Json
  • 3276: Mono implementation of HttpWebRequest eats the body of a DELETE request
  • 5948: No color syntax for axml files in Designer/Source view in Visual Studio 2010
  • 6249: Assets not included in package when IntermediateOutputPath is specified to an absolute path.
  • 6329: Null refrence in WebConnectStream Ctor
  • 6860: Inspecting properties results wrong value
  • 7013#c15: Add native libraries to .apks in the right order to improve support for Android 4.0-4.0.3.
  • 7258: WebRequest.DefaultWebProxy with credentials fails
  • 7309: Resources.GetXml - XmlReader.Name property Hangs without exception
  • 7564: mono_aot_find_jit_info () is not signal safe (workaround)
  • 7599: HttpWebRequest returns 404 because it reuses an old connection to a previous server
  • 7637: HttpWebRequest::BeginGetResponse hangs when send request stream is empty
  • 7686: Need a custom attribute [Permission] to generate <permission ... /> in AndroidManifest.xml
  • 7687: Substitute package name in string literals
  • 7837: Generate the //provider/@android:authorities attribute
  • 7934: In MfA 4.2.8, Application.OnCreate doesn't get called anymore
  • 7948Add support for EmbeddedReferenceJar
  • 7957: System.Xml.XmlException : 'Text' is an invalid node type
  • 7966: TimeZoneInfo.FindSystemTimeZoneById returns null
  • 8072: Avoid throwing exceptions from WeakReference.IsAlive after finalization when the underlying GCHandle is already finalized.
  • 8104: Fix Notification.LedARGB to be of int type.
  • 8134: JavaList needs to provide java.util.List methods to make it valid to derive from ArrayList
  • 8312: SSL POST GetRequestStream gets exception 'authentication or decryption has failed'
  • 8320: Runtime metadata bug with RX
  • 8339: Remove Compiler Warnings in Resource.designer.cs
  • 8405: OS X installer should not say "Activation Successful" if activation was not successful.
  • 8406: Fix error messages generated by OS X installer.
  • 8553: SSL Validation Issues
  • 8559: TaskScheduler passed with parallel options to Parallel.ForEach not used correctly

API Changes

Warnings

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.