【问题标题】:Template10 NavigationService is nullTemplate10 NavigationService 为空
【发布时间】:2018-10-18 02:48:26
【问题描述】:

这是我的 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 验证 H结果=-2147467261 Message=对象引用未设置为对象的实例。

NavigationService 始终为空。

我该如何解决这个问题?

【问题讨论】:

  • 我用你的代码测试过,效果很好。您发布的代码是正确的。我认为问题可能不在这里。您能否分享一个可以重现您的问题的minimal reproducible example?或者您可以使用 Minimal Template 10 项目测试您的代码,它应该能够工作。
  • 如果我创建一个新项目,这段代码可以正常工作

标签: c# xaml uwp template10


【解决方案1】:

当我将项目的 Target min 版本更新为 Fall Creators Update(请参阅 project properties)时,我遇到了同样的问题。

阅读this 线程后,我通过将Newtonsoft.Json Nuget 依赖项从版本11.x.x 更新为10.0.3 来解决了这个问题。

所以为了清楚起见,我降级了 Newtonsoft.Json Nuget 依赖项的版本。

【讨论】:

    【解决方案2】:

    我遇到过类似的问题,但在 ViewModel 内部不在 App.xaml.cs 中。

    因此,当我在视图后面的代码中将ViewModel 定义和初始化为属性时,NavigationService 为空。

    解决方案是在 xaml (<Page.DataContext>) 中定义 ViewModel,然后一切正常。

    【讨论】:

    • 我知道这有点老了,但我也遇到了这个问题。你能解释一下你做了什么来解决这个问题吗?我真的很感激!
    【解决方案3】:

    对于任何回到这个问题的人,我遇到了问题并意识到如果我保留项目 10586 的最低版本,问题就会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      相关资源
      最近更新 更多