2015-04-24 84 views
0

我遵循Windows Live SDK 5.6示例代码,并有我自己的简单应用程序尝试登录OneDrive。随着我的Microsoft帐户一步定步骤,似乎一切都很好,不过,我总是得到System.NullReferenceException,当应用程序进入到这个页面再次,当我点击一个按钮:Windows Phone 8.1 Live SDK 5.6登录问题

private async void signInBtn_Click(object sender, RoutedEventArgs e) 
    { 

     try 
     { 
      authClient = new LiveAuthClient(); 
      System.Diagnostics.Debug.WriteLine("authClient = " + authClient); 

      loginResult = await authClient.LoginAsync(new string[] { "wl.signin", "wl.skydrive", "wl.skydrive_update", "wl.photos" }); 

      if (loginResult.Status == LiveConnectSessionStatus.Connected) 
      { 

       liveClient = new LiveConnectClient(loginResult.Session); 
       var meResult = await liveClient.GetAsync("me"); 
       System.Diagnostics.Debug.WriteLine(meResult.Result["name"].ToString() + ", " + "You have logged in OneDrive!"); 
      } 

     } 
     catch (LiveAuthException authExp) 
     { 
      System.Diagnostics.Debug.WriteLine("LiveAuthException = " + authExp.ToString()); 
     } 

     catch (LiveConnectException connExp) 
     { 
      System.Diagnostics.Debug.WriteLine("LiveConnectException = " + connExp.ToString()); 
     } 
    } 

在这次抛出异常line:

loginResult = await authClient.LoginAsync(new string[] { "wl.signin", "wl.skydrive", "wl.skydrive_update", "wl.photos" }); 

我的代码出了什么问题?甚至提到了示例代码?

回答

0

尝试传递一个列表,而不是一个字符串数组:

public static async Task<LiveLoginResult> LoginAsync() 
{ 
    List<String> oneDriveScopes = new List<String>() { "wl.signin", "wl.basic", "wl.skydrive_update" }; 
    LiveAuthClient authClient = new LiveAuthClient(); 
    LiveLoginResult authResult; 
    try 
    { 
     authResult = await authClient.LoginAsync(oneDriveScopes); 
    } 
    catch 
    { 
     return null; 
    } 
    return authResult; 
} 
+0

似乎仍然无法正常工作... –

+0

您是否尝试过我发布的那段代码,并且在调用LoginAsync方法时仍然得到相同的异常?我写的这个方法对我来说工作正常 – Sergio0694

+0

我不是正好运行你的代码,而是用List代替了那些字符串数组,它有相同的异常... –

0

我终于设法得到的代码工作:运行代码,我有我的应用程序在Windows应用商店联系起来,从而使前在该项目中,生成了一个名为Package.StoreAssociation.xml的文件。 通过身份验证,我的真实账户信息被正确检索,不再有任何异常。