【发布时间】:2019-04-17 07:46:33
【问题描述】:
我的目标是使用 UWP 扩展 existing Xamarin project。
我有两个共享项目,X.mobile.shared 和 X.application.shared,所以我为 Uwp 项目添加了参考这两个项目。
按照从the documentation 添加uwp 的步骤后,我还安装了这些共享项目中可用的所有Nuget 包,正如these issue 的答案中所述。
现在,当我调试 UWP 项目时,除了 未处理的异常,我没有收到任何错误,我试图找出触发该异常的线,然后我发现取消注释这一行:
rootFrame.Navigate(typeof(MainPage), e.Arguments);
触发未处理的异常:
消息包含,如图所示:
Message "Object reference not set to an instance of an object."
这意味着有一个对空对象的引用!
我做错了什么?
更新
使用 ligne 上的 BreakPoint 触发错误,我试图查看方法的值是参数,我发现 typeofMain() 调用的 DeclaringMethod 正在返回"SystemInvalidOpertaionException"。
这是什么意思?
更新 2
得到@Martin Zikmund 的建议,我检查了堆栈跟踪,发现问题发生在:
Acme.PhoneBookDemo.Core.Dependency.DependencyResolver.Resolve[T]()\r\n at Acme.PhoneBookDemo.App.OnStart()
回到那个类,这是 OnStart() 方法的代码:
protected override async void OnStart()
{
base.OnStart();
if (Device.RuntimePlatform == Device.iOS)
{
SetInitialScreenForIos();
await UserConfigurationManager.GetIfNeedsAsync();
}
await DependencyResolver.Resolve<INavigationService>().InitializeAsync();
OnResume();
}
调试器到达此行时触发问题:
await DependencyResolver.Resolve<INavigationService>().InitializeAsync();
【问题讨论】:
-
GitHub上有Xamarin解决方案源代码的链接吗?
-
是aspnetzero的私有Github项目,需要付费才能使用
标签: c# xamarin xamarin.forms uwp aspnetboilerplate