Search code examples
xamarinxamarin.androidmvvmcross

MvvmCros unhandled fatal exception in Android after adding Visibility plugin


After adding the Nuget Visibility MvvmCross plugin I experience a fatal unhandled exception occurring in the SplashScreen trying to find a method to start the IoC container.

Output.

02-15 22:23:08.814 W/ (24776): Missing method Cirrious.CrossCore.IoC.MvxSimpleIoCContainer::Initialize() in assembly /data/data/com.runaway/files/.override/Cirrious.CrossCore.dll, referenced in assembly /data/data/com.runaway/files/.override/Cirrious.MvvmCross.dll An unhandled exception occured.

02-15 22:23:27.544 I/MonoDroid(24776): UNHANDLED EXCEPTION: System.MissingMethodException: Method not found: 'Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.Initialize'. 02-15 22:23:27.544 I/MonoDroid(24776): at Cirrious.MvvmCross.Platform.MvxSetup.InitializeIoC () 02-15 22:23:27.544 I/MonoDroid(24776): at Cirrious.MvvmCross.Platform.MvxSetup.InitializePrimary () 02-15 22:23:27.544 I/MonoDroid(24776): at Cirrious.MvvmCross.Droid.Platform.MvxAndroidSetupSingleton.InitializeFromSplashScreen (Cirrious.MvvmCross.Droid.Views.IMvxAndroidSplashScreenActivity) 02-15 22:23:27.544 I/MonoDroid(24776): at Cirrious.MvvmCross.Droid.Views.MvxSplashScreenActivity.OnCreate (Android.OS.Bundle) 02-15 22:23:27.544 I/MonoDroid(24776): at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) [0x00011] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.10.2-branch/4b53fbd0/source/monodroid/src/Mono.Android/platforms/android-14/src/generated/Android.App.Activity.cs:1943 02-15 22:23:27.544 I/MonoDroid(24776): at (wrapper dynamic-method) object.7e9871ea-8037-425c-b1aa-c04a08c78fa8 (intptr,intptr,intptr) Unhandled Exception:

System.MissingMethodException: Loading...

02-15 22:23:31.794 E/mono (24776): In mgmain JNI_OnLoad 02-15 22:23:31.794 E/mono (24776): Unhandled Exception: 02-15 22:23:31.794 E/mono (24776): System.MissingMethodException: Method not found: 'Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.Initialize'. 02-15 22:23:31.794 E/mono (24776): at Cirrious.MvvmCross.Platform.MvxSetup.InitializeIoC () [0x00000] in :0 02-15 22:23:31.794 E/mono (24776): at Cirrious.MvvmCross.Platform.MvxSetup.InitializePrimary () [0x00000] in :0 02-15 22:23:31.794 E/mono (24776): at Cirrious.MvvmCross.Droid.Platform.MvxAndroidSetupSingleton.InitializeFromSplashScreen (IMvxAndroidSplashScreenActivity splashScreen) [0x00000] in :0 02-15 22:23:31.794 E/mono (24776): at Cirrious.MvvmCross.Droid.Views.MvxSplashScreenActivity.OnCreate (Android.OS.Bundle bundle) [0x00000] in :0 02-15 22:23:31.794 E/mono (24776): at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_savedInstanceState) [0x00011] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.10.2-branch/4b53fbd0/source/monodroid/src/Mono.Android/platforms/android-14/src/generated/Android.App.Activity.cs:1943 02-15 22:23:31.794 E/mono (24776): at (wrapper dynamic-method) object:7e9871ea-8037-425c-b1aa-c04a08c78fa8 (intptr, 02-15 22:23:31.794 E/mono-rt (24776): [ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method not found: 'Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.Initialize'. 02-15 22:23:31.794 E/mono-rt (24776): at Cirrious.MvvmCross.Platform.MvxSetup.InitializeIoC () [0x00000] in :0 02-15 22:23:31.794 E/mono-rt (24776): at Cirrious.MvvmCross.Platform.MvxSetup.InitializePrimary () [0x00000] in :0 02-15 22:23:31.794 E/mono-rt (24776): at Cirrious.MvvmCross.Droid.Platform.MvxAndroidSetupSingleton.InitializeFromSplashScreen (IMvxAndroidSplashScreenActivity splashScreen) [0x00000] in :0 02-15 22:23:31.794 E/mono-rt (24776): at Cirrious.MvvmCross.Droid.Views.MvxSplashScreenActivity.OnCreate (Android.OS.Bundle bundle) [0x00000] in :0 02-15 22:23:31.794 E/mono-rt (24776): at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_savedInstanceState) [0x00011] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.10.2-branch/4b53fbd0/source/monodroid/src/Mono.Android/platforms/android-14/src/generated/Android.App.Activity.cs:1943 02-15 22:23:31.794 E/mono-rt (24776): at (wrapper dynamic-method) object:7e9871ea-8037-425c-b1aa-c04a08c7

This was working fine as I remember yesterday, I just added a ProgressBar in the Android platform to test the Visibility plugin as a Youtube N+1 tutorial was showing.

axml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Progressbar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        local:MvxBind="Visibility IsLoading,Converter=Visibility" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true">
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="12dp"
            local:MvxBind="Text Username" />
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="12dp"
            local:MvxBind="Text Password" />
        <Button
            android:text="Login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            local:MvxBind="Click LoginCommand"
            android:layout_marginTop="30dip" />
    </LinearLayout>
</RelativeLayout>

Any thoughts how to fix this, or do you think it's a bug?

Thank you.


Solution

  • Problem is that some projects were using the 3.0 version from Nuget and others updated to 3.1. This lead to some compatibility issues throwing exceptions.

    Updating the solution to the latest MvvmCross version fixed the issues.