我有一个用Xamarin编写的iOS应用程序,尝试在iOS中运行该应用程序时遇到了Unity Exceptions Resolution Failed异常。但是,当我运行应用程序的android版本时,不会发生此错误。发生棱镜异常时,引发异常。
这是我的app.xaml.cs中的摘录
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
this.RegisterLocal(containerRegistry);
this.RegisterServices(containerRegistry);
this.RegisterPagesForNavigation(containerRegistry);
}
此代码全部执行并通过。
这是iOS初始化
Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
PullToRefreshLayoutRenderer.Init();
LoadApplication(new App(new IosInitializer()));
return base.FinishedLaunching(app, options);
}
public class IosInitializer : IPlatformInitializer
{
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.Register<IUAirshipUpdate, UAirshipUpdate>();
}
}
此代码也将执行
抛出的异常是参数null异常,指示不存在IModuleCatelog。我不明白为什么它要寻找那个模块而找不到它。 GitHub上的源代码指示该类已注册。
答案 0 :(得分:1)
此问题是由于将IOS应用程序的链接器行为设置为完全,并且导致Unity IOC Container出现问题而引起的。