Xamarin链接器:没有找到Cirrious.CrossCore.IoC.MvxPropertyInjector类型的



使用HotTuna包中的FirstView骨架项目,并将构建链接器行为设置为"链接所有程序集",我得到以下错误:

系统。MissingMethodException:未找到Cirrious.CrossCore.IoC.MvxPropertyInjector类型的默认构造函数

使用NuGet包v3.1.1为所有MvvmCross(4个包)

LinkerPleaseInclude文件没有行[MonoTouch.Foundation。保存(AllMembers = true)]

使用最新的稳定版本:

电脑:Xamarin for VS 1.12.278Xamarin的。iOS 1.12.278

麦克:Xamarin的。iOS 7.2.2.2

当然,只有SDK的链接器行为,它运行良好。有什么建议吗?

已解决;因此,在基本项目中,有三个连续的错误,顺序如下:

System.MissingMethodException: Default constructor not found for type Cirrious.CrossCore.IoC.MvxPropertyInjector
  • 可以通过——linkskip=Cirrious来解析。Core(丑),或者在linkpleesinclude .cs

    中包含以下内容
    public void Include(MvxPropertyInjector injector){
        injector = new MvxPropertyInjector ();
    } 
    

下一个错误是:

    Cirrious.CrossCore.Exceptions.MvxException: Failed to construct and initialize ViewModel for type {0} from locator MvxDefaultViewModelLocator - check MvxTrace for more information

这个很难;简单的修复当然是做一个——linkskip=portableLibrary,或者在某个地方创建一个ViewModel的实例(也许在LinkerPleaseInclude.cs);第二种方法的问题是,至少在我的情况下,我的大多数VM都没有一个无参数的构造函数,显然在这种情况下使用IOC是没有用的。

最后一个错误:

System.ArgumentNullException: missing source event info in MvxWeakEventSubscription
Parameter name: sourceEventInfo

要么使用——linkskip=System(丑陋),要么在linkpleaseinclude .cs中添加以下内容

    public void Include(INotifyPropertyChanged changed)
    {
        changed.PropertyChanged += (sender, e) =>  {
            var test = e.PropertyName;
        };
    }

这足以让我的基本项目运行LinkAllAssemblies,使用LLVM优化器,并使用SGen收集器。

当我的XCode与Mac上最新的Xamarin不同步时,我遇到了这个问题。升级到最新的XCode解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新