我将某些库从nuget升级到最新版本后,在Xamarin.Forms应用程序中出现运行时错误“ Unity.UnityContainer + ContainerContext类型的VTable设置失败”。在Android上运行。
我没有对代码本身进行任何其他更改。我仅升级到稳定版本。
这里是堆栈:
位于Prism.Unity.PrismApplication.CreateContainerExtension()[0x00000]在d:\ a \ 1 \ s \ Source \ Xamarin \ Prism.Unity.Forms \ PrismApplication.cs:44中在d:\ a \ 1 \ s \ Source \ Xamarin \ Prism.Forms \ PrismApplicationBase.cs:130中的Prism.PrismApplicationBase.Initialize()[0x00000]在d:\ a \ 1 \ s \ Source \ Xamarin \ Prism.Forms \ PrismApplicationBase.cs:84中的Prism.PrismApplicationBase.InitializeInternal()[0x00006]在Prism.PrismApplicationBase..ctor(Prism.IPlatformInitializer platformInitializer,System.Boolean setFormsDependencyResolver)[0x00038]在d:\ a \ 1 \ s \ Source \ Xamarin \ Prism.Forms \ PrismApplicationBase.cs:75中在d:\ a \ 1 \ s \ Source \ Xamarin \ Prism.Forms \ PrismApplicationBase.cs:57中的Prism.PrismApplicationBase..ctor(Prism.IPlatformInitializer platformInitializer)[0x00000]在Prism.Unity.PrismApplication..ctor(Prism.IPlatformInitializer platformInitializer)处[d:\ a \ 1 \ s \ Source \ Xamarin \ Prism.Unity.Forms \ PrismApplication.cs:30中的[0x00000]在C:\ Dev \ MaxalLabs \ TennisUmpire \ src \ TennisUmpireXamarin \ TennisUmpireXamarin \ App.xaml.cs:34的TennisUmpireXamarin.App.ctor(Prism.IPlatformInitializer初始化程序)[0x00000]中在C:\ Dev \ MaxalLabs \ TennisUmpire \ src \ TennisUmpireXamarin \ TennisUmpireXamarin.Droid \ MainActivity.cs:65中的TennisUmpireXamarin.Droid.MainActivity.OnCreate(Android.OS.Bundle bundle)[0x0009e]在<3324153164274220ab14392825330ba2>:0中的Android.App.Activity.n_OnCreate_Landroid_os_Bundle_(System.IntPtr jnienv,System.IntPtr native__this,System.IntPtr native_savedInstanceState)[0x00011]在(包装器动态方法)Android.Runtime.DynamicMethodNameCounter.17(intptr,intptr,intptr)
感谢任何帮助或建议。我宁愿不回滚,而是保持最新版本。
我能够通过将最新版本的Unity.Container(5.11.1)直接添加到我的Xamarin项目中来进行修复,该版本高于Prism.Unit.Forms尝试链接的版本。