2015-04-24 5 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

я, наконец, удалось получить код работать: перед запуском кода, я должен связать мое приложение в магазине окна, так что в проекте создается один файл с именем Package.StoreAssociation.xml. С проверкой подлинности моя текущая учетная запись извлекается правильно и не является исключением.