这是我的App.xaml.cs
[Bindable]
sealed partial class App : Template10.Common.BootStrapper
{
public App()
{
InitializeComponent();
SplashFactory = (e) => new Views.Splash(e);
var _settings = SettingsService.Instance;
RequestedTheme = _settings.AppTheme;
CacheMaxDuration = _settings.CacheMaxDuration;
ShowShellBackButton = _settings.UseShellBackButton;
}
public override async Task OnInitializeAsync(IActivatedEventArgs args)
{
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
var statusBar = StatusBar.GetForCurrentView();
await statusBar.HideAsync();
}
await Task.CompletedTask;
}
public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
{
NavigationService.Navigate(typeof(Views.MainPage)); // Exception here
await Task.CompletedTask;
}
}
每次启动应用程序时都会遇到此异常:
System.NullReferenceException verificata 的HResult = -2147467261 Message =对象引用未设置为对象的实例。
NavigationService始终为null。
我该如何解决这个问题?
答案 0 :(得分:0)
我有类似的问题,但在ViewModel
内部不在App.xaml.cs中。
因此,当我在视图后面的代码中定义并初始化NavigationService
属性时,ViewModel
为空。
解决方案是在xaml(<Page.DataContext>
)中定义ViewModel,然后一切都像魅力一样。
答案 1 :(得分:0)
对于任何回到这里的人,我遇到了问题,并意识到,如果我保留项目10586的最低版本,问题就会消失。
答案 2 :(得分:0)
当我将项目的目标最低版本更新为Fall Creators Update时,我遇到了同样的问题。
阅读this线程后,我通过将project properties
的Nuget依赖项从版本Newtonsoft.Json
更新为11.x.x
来解决了这个问题。
为了清楚起见,我降级了10.0.3
Nuget依赖项的版本。