Mono For Android 1.0.3


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

MonoDevelop Users: You should be prompted to upgrade next time you open MonoDevelop, or you can use Help->Check for Updates.

Major Highlights


Improved Debugger Performance: both stepping over your .NET code and examining variables is significantly faster. We eliminated some major bottlenecks caused by roundtrips from Visual Studio to the device and this has resulted in faster debugging and faster exploration of your variables.

Garbage Collection: There are many important bug fixes to the garbage collector specific to Android. Every Mono for Android user is encouraged to upgrade to this release.

Changes Since Mono for Android 1.0.2

Garbage Collection

Many garbage collection bugs have been fixed, the NullReferenceExceptions class of errors from Java.Lang.Object.GetObject() should not happen anymore:

Unhandled Exception: System.NullReferenceException: Object reference not set to an 
  instance of an object
  at Java.Lang.Object.GetObject (IntPtr handle, System.Type type, Boolean owned) [0x00000] 
  at Java.Lang.Object._GetObject[IOnTouchListener] (IntPtr handle, Boolean owned) [0x00000]
  at Java.Lang.Object.GetObject[IOnTouchListener] (IntPtr handle, Boolean owned) [0x00000] 
  at Android.Views.View+IOnTouchListenerAdapter.
    (IntPtr jnienv, IntPtr native__this, IntPtr native_v, IntPtr native_e) [0x00000] 
  at (wrapper dynamic-method) object:b039cbb0-15e9-4f47-87ce-442060701362 

NullReferenceExceptions coming from RunnableImplementor.Run() should also be fixed:

UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an 
 instance of an object
 at Java.Lang.Thread/RunnableImplementor.Run () <0x000c4>
 at Java.Lang.IRunnableAdapter.n_Run (intptr,intptr) <0x00037>
 at (wrapper dynamic-method) object.b56fa1f4-8bcf-45b1-9d80-771daa7615b2 
    (intptr,intptr) <0x0002b>

Installation Fixes

  • If you have both Java 6 SDK and Java 7 SDK installed, Mono for Android will use Java 6.
  • Give clear error message if Java 6 SDK is not found. (Java 7 SDK is currently not supported.)

Visual Studio Add-in

  • Improved performance of stepping through code while debugging.
  • Improved performance of examining variables while debugging.

Bug Fixes

  • 667062 - Signing fails if project path contains # character

  • 690795 - Assertion at ../../../../mono/metadata/sgen-gc.c:4963, condition `info->stackstart >= info->stackstartlimit && info->stackstart < info->stack_end' not met.

  • 685215 - Odd SurfaceView Touch exception.

  • 686649 - SIGSEGV in the Runtime when clearing an array

  • 711286 - Garbage Collector has conflict with accelerometer

  • 229 - Fix a g_assert() within the GC.

  • 230 - Http connection to server with NTLM authentication timeouts very often

  • 245 - GC prematurely collecting instances.

  • Ensure we give a better error than "aresgen.exe exited with code 1"

  • ThreadPool bug fixes from Mono 2.10, this fixes a problem with unreliable HTTP and other components of Mono that used the ThreadPool internally.


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.