2015-04-24 108 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的文件。 通過身份驗證,我的真實賬戶信息被正確檢索,不再有任何異常。