UWP启动文件错误'远程过程调用失败'

时间:2016-03-09 18:43:56

标签: c# windows-10 win-universal-app

我是用C#为UWP写一个播放器。

启动文件时遇到问题。

当应用程序打开时,启动文件效果很好但是当我关闭应用程序并启动文件时,它会给我错误: '远程过程调用失败'

我设置了fileTypeAssociation,这里有一些我在App.xaml.cs中启动的代码:

protected override void OnFileActivated(FileActivatedEventArgs e)
{
    Frame rootFrame = CreateRootFrame();
    if (rootFrame.Content == null)
    {
        if (!rootFrame.Navigate(typeof(MainPage), e))
            throw new Exception("Failed to create initial page");
    }
    else
        rootFrame.Navigate(typeof(PlayerPage), e);
    Window.Current.Activate();
}

我该如何解决?

1 个答案:

答案 0 :(得分:0)

  

错误'远程过程调用失败'

此崩溃通常发生在应用启动,激活或页面加载阶段。

由于您的应用在应用开放期间启动文件时工作正常,我只是假设OnLaunched(LaunchActivatedEventArgs e)方法中的代码运行良好。

并且您没有发布CreateRootFrame()的代码,根据您发布的代码,我无法真正重现您的问题。我改变了你的代码,它在我身边很好用:

protected override void OnFileActivated(FileActivatedEventArgs args)
{
    //base.OnFileActivated(args);
    var rootFrame = new Frame();
    rootFrame.Navigate(typeof(PlayerPage), args);
    Window.Current.Content = rootFrame;
    Window.Current.Activate();
}

您只需要导航到rootFrame中的播放器页面即可。

我在这里写了一个非常简单的演示https://github.com/plataformatec/devise,你可以测试它。只需下载并运行它然后关闭此应用程序,选择.mp4或.wmv文件并使用此应用程序打开,它将导航到PlayerPage并播放该文件。

也许您可以分享CreateRootFrame()方法的代码,或者告诉我从文件启动应用时还需要做什么,我会继续跟踪此问题。