Mono For Android 1.9.2

 

This is a preview release for the 2.0 series. If you are feeling adventurous, try it out and file bugs if anything goes wrong. If you find something that impedes your work, you can uninstall this release and the shared runtime / platform packages on your Android device, and reinstall Mono for Android 1.2.

Installation:

Visual Studio Users: Download monoandroid-1.9.2.msi and install.

MonoDevelop Users: To be prompted about beta updates, go to Help->Check for Updates and set the Update Level to Beta. You should be prompted with beta updates.

Major Highlights

This release features the following major highlights:

  • Ice Cream Sandwich Support (Android v4.0)
    • New APIs supported
    • Fixed to support Google's JNI breaking changes
  • Google Maps API bindings
  • System.Numerics is now part of Mono for Android
    • Complex data type
    • BigInteger data type.
  • Assembly Attributes for:
    • Declaratively listing required Android permissions
    • Declaratively request dependencies on libraries
  • Unhandled Exception Support in Visual Studio
  • System.Console output is redirected to the Android Debug Log

In addition, these are the new features since Mono for Android 1.2, for details see the 1.9.0 and 1.9.1 release notes.

  • Honeycomb Support (Android 3.x)
  • Smarter linker produces smaller executables
  • Updated notifications for Visual Studio
  • Java 7 support
  • Incremental builds
  • Listener classes are mapped to C# events

Changes Since Mono for Android 1.9.1

  • See 1.9.0 Release Notes for changes since 1.2.0.
  • See 1.9.1 Release Notes for changes since 1.9.0.

Ice Cream Sandwich Support (Android v4.0): Mono.Android.dll is now provided for API level 14, allowing targeting of ICS devices.

Google Maps API Binding: There is now a managed binding to the Google Maps API that ships with Android. To use this, simply add a reference to the Mono.Android.GoogleMaps.dll assembly. This will automatically add the needed java library reference and the INTERNET permission to your application.

An example project using the Google Maps API is available [here].

[UsesPermission] attribute: You can now specify the Android permissions your app requires with an assembly level attribute. This is analogous to adding a <uses-permission> element to the AndroidManifest.xml.

[assembly:UsesPermission (Android.Manifest.Permission.Internet)]

[UsesLibrary] attribute: You can now specify the Android extra libraries your app requires with an assembly level attribute. This is analagous to adding a <uses-library> element to the AndroidManifest.xml.

[assembly:UsesLibrary ("com.google.android.maps")]

Unhandled Exception Support in VS: When you hit an unhandled exception in your application while debugging, VS will now let you know what the exception is instead of just stopping with a green line.

System.Console messages are copied to the Android Debug Log: Output generated to System.Console.Out and System.Console.Error are now copied to the Android Debug Log.

System.Numerics.dll has been added to the Mono for Android profile.

Breaking Changes

  • Every method that takes an (IntPtr handle) parameter has been changed to take an(IntPtr handle, JniHandleOwnership transfer) parameter pair. This includesall constructors. Anyone using JNI and creating wrapper objects will need to update their code, probably by using JniHandleOwnership.DoNotTransfer.

Bug Fixes

  • Android.App.ActivityAttribute-related enumerations have been updated to API level 13.
  • 1115: DeflateStream doesn't work
  • 660400: Support jagged array types in method declarations.
  • Improve merging of [Application] attribute and <application/> AndroidManifest.xml element.
  • `msbuild /t:Clean` will no longer remove the debug keystore.

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.