Unity + Android + Development Build = CompareBaseObjectsInternal can only be called from the main thread.

Hi there,

I have been struggling to achieve an android plugin to communicate with a Singleton, and it seems I’ve achieved it by forcing the call through the UIThread.

Instance.activity.Call("runOnUiThread", new AndroidJavaRunnable(() =>{
          Instance.activity.Call("getMe");
}));	

The problem comes when I try to launch the app as a development build (it works as a charm launching it normally). The error I get is this one:

05-13 16:45:45.070: E/Unity(1585): CompareBaseObjectsInternal  can only be called from the main thread.
05-13 16:45:45.070: E/Unity(1585): Constructors and field initializers will be executed from the loading thread when loading a scene.
05-13 16:45:45.070: E/Unity(1585): Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
05-13 16:45:45.070: E/Unity(1585):  
05-13 16:45:45.070: E/Unity(1585): (Filename: /Applications/buildAgent/work/7535de4ca26c26ac/Runtime/ExportGenerated/AndroidManaged/UnityEngineObject.cpp Line: 24)
05-13 16:45:45.180: I/ActivityManager(2294): Process android.process.media (pid 1837) (adj 9) has died.
05-13 16:45:45.210: E/mono(1585): Unhandled Exception: System.ArgumentException: CompareBaseObjectsInternal  can only be called from the main thread.
05-13 16:45:45.210: E/mono(1585): Constructors and field initializers will be executed from the loading thread when loading a scene.
05-13 16:45:45.210: E/mono(1585): Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
05-13 16:45:45.210: E/mono(1585):   at UnityEngine.Object.CompareBaseObjects (UnityEngine.Object lhs, UnityEngine.Object rhs) [0x00000] in <filename unknown>:0 
05-13 16:45:45.210: E/mono(1585):   at UnityEngine.Object.op_Equality (UnityEngine.Object x, UnityEngine.Object y) [0x00000] in <filename unknown>:0 
05-13 16:45:45.210: E/mono(1585):   at Singleton`1[FacebookWrapper].get_Instance () [0x00000] in J:\PROYECTOS\TapToCare	runk\Assets\Scripts\Singleton.cs:15 
05-13 16:45:45.210: E/mono(1585):   at FacebookWrapper.<getMe>m__1 () [0x00000] in J:\PROYECTOS\TapToCare	runk\Assets\Scripts\FacebookWrapper.cs:55 

Any clue?
Thanks!

I just figured it out!!
I had to call

Instance.activity.Call("runOnUiThread", new AndroidJavaRunnable(() =>{
          instance.activity.Call("getMe");
}));   

note the lowercase “i” on instance call.