使用 HotTuna 包中的 FirstView 的骨架项目,并将构建链接器行为设置为“链接所有程序集”,我收到以下错误:
System.MissingMethodException:找不到 Cirrious.CrossCore.IoC.MvxPropertyInjector 类型的默认构造函数
对所有 MvvmCross 使用 NuGet 包 v3.1.1(4 个包)
LinkerPleaseIninclude 文件确实有这一行
[MonoTouch.Foundation.Preserve(AllMembers = true)]
使用最新的稳定版本:
在电脑上:
Xamarin VS 1.12.278
Xamarin.iOS 1.12.278
苹果:
Xamarin.iOS 7.2.2.2
当然,仅使用 SDK 的链接器行为,它就可以正常运行。有人有什么建议吗?
解决了;因此,在基本项目中,出现了三个连续错误,顺序如下:
System.MissingMethodException: Default constructor not found for type Cirrious.CrossCore.IoC.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 中);至少在我的情况下,第二种方法的问题是,我的大多数虚拟机没有无参数构造函数,显然在这种情况下使用 IOC 没有帮助。
最终错误:
System.ArgumentNullException: missing source event info in MvxWeakEventSubscription
Parameter name: sourceEventInfo
使用 --linkskip=System (丑陋),或将以下内容添加到 LinkerPleaseIninclude.cs
public void Include(INotifyPropertyChanged changed)
{
changed.PropertyChanged += (sender, e) => {
var test = e.PropertyName;
};
}
这足以让我的基本项目使用 LinkAllAssemblies、使用 LLVM 优化器和使用 SGen 收集器运行。
希望这对任何寻求解决方案的人有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)