Search code examples
mvvmcross

Getting error calling ShowViewModel


Writing a sample app where I have a list of items, and then when the user clicks on a item - it uses ShowViewModel to display a detail page about the item. However, when call the method that calls ShowViewModel it crashes with the following error: "Could not resolve type with token 01000037 (from typeref, class/assembly MvvmCross.Core.ViewModels.MvxRequestedBy..."

The code for the sample app is here: https://github.com/gregmercer/FruitsAndVeggies

The full error message is here: https://github.com/gregmercer/FruitsAndVeggies/blob/master/error.txt

And the line that cause the error (when uncommented) is found here: https://github.com/gregmercer/FruitsAndVeggies/blob/master/FruitsAndVeggies.Core/ViewModels/FruitsViewModel.cs#L58


Solution

  • The problem is that you are mixing MvvmCross versions.

    So if you look at your packages.config for your core:

    <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="MvvmCross" version="4.4.0" targetFramework="portable45-net45+win8+wpa81" />
      <package id="MvvmCross.Binding" version="4.4.0" targetFramework="portable45-net45+win8+wpa81" />
      <package id="MvvmCross.Core" version="4.4.0" targetFramework="portable45-net45+win8+wpa81" />
      <package id="MvvmCross.Platform" version="4.4.0" targetFramework="portable45-net45+win8+wpa81" />
    </packages>
    

    These are version 4.4.0

    Then if we look at the Droid project:

    <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="MvvmCross" version="5.0.2" targetFramework="monoandroid70" />
      <package id="MvvmCross.Binding" version="5.0.2" targetFramework="monoandroid70" />
      <package id="MvvmCross.Core" version="5.0.2" targetFramework="monoandroid70" />
      <package id="MvvmCross.Droid.Shared" version="5.0.2" targetFramework="monoandroid70" />
      <package id="MvvmCross.Droid.Support.Core.UI" version="5.0.2" targetFramework="monoandroid70" />
      <package id="MvvmCross.Droid.Support.Fragment" version="5.0.2" targetFramework="monoandroid70" />
      <package id="MvvmCross.Droid.Support.V7.AppCompat" version="5.0.2" targetFramework="monoandroid70" />
      <package id="MvvmCross.Droid.Support.V7.RecyclerView" version="5.0.2" targetFramework="monoandroid70" />
      <package id="MvvmCross.Platform" version="5.0.2" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Annotations" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Compat" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Core.UI" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Core.Utils" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Design" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Fragment" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Media.Compat" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Transition" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.v7.AppCompat" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.v7.RecyclerView" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Android.Support.Vector.Drawable" version="25.3.1" targetFramework="monoandroid70" />
      <package id="Xamarin.Build.Download" version="0.4.3" targetFramework="monoandroid70" />
    </packages>
    

    These are version 5.0.2, which is newer than 4.4.0.

    Consolidate your packages and use same versions across all your projects.