gpt4 book ai didi

xamarin.ios - Xamarin 链接器 : Default constructor not found for type Cirrious. CrossCore.IoC.MvxPropertyInjector

转载 作者:行者123 更新时间:2023-12-04 23:01:18 27 4
gpt4 key购买 nike

使用 HotTuna 包中的 FirstView 框架项目,并将构建链接器行为设置为“链接所有程序集”,我收到以下错误:
System.MissingMethodException:未找到 Crillous.CrossCore.IoC.MvxPropertyInjector 类型的默认构造函数
对所有 MvvmCross 使用 NuGet 包 v3.1.1(4 个包)
LinkerPleaseInclude 文件确实有这一行
[MonoTouch.Foundation.Preserve(AllMembers = true)]
使用最新的稳定版本:
在电脑上:
适用于 VS 1.12.278 的 Xamarin
Xamarin.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(丑陋)或通过在 LinkerPleaseInclude.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 (丑陋),要么将以下内容添加到 LinkerPleaseInclude.cs
        public void Include(INotifyPropertyChanged changed)
    {
    changed.PropertyChanged += (sender, e) => {
    var test = e.PropertyName;
    };
    }

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

    希望这会帮助任何寻找解决方案的人。

    关于xamarin.ios - Xamarin 链接器 : Default constructor not found for type Cirrious. CrossCore.IoC.MvxPropertyInjector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581846/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com