2016-08-16 3 views
1

Я хочу получить данные с помощью твитер-ткани api, но всякий раз, когда я склонен проверять учетные данные и использую обратный вызов, это показывает ошибку, в частности, «Аргументы различаются по длине»Почему я получаю сообщение об ошибке .verifyCredentials()

void getUserData() { 
     Twitter.getApiClient(session).getAccountService() 
       .verifyCredentials(true, false, new Callback<User>() { 

        @Override 
        public void failure(TwitterException e) { 

        } 

        @Override 
        public void success(Result<User> userResult) { 

         User user = userResult.data; 
         String twitterImage = user.profileImageUrl; 

         try { 
          Log.d("imageurl", user.profileImageUrl); 
          Log.d("name", user.name); 
          Log.d("email",user.email); 
          Log.d("des", user.description); 
          Log.d("followers ", String.valueOf(user.followersCount)); 
          Log.d("createdAt", user.createdAt); 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 


        } 

       }); 


    } 
+1

Сообщение вашей LogCat –

+0

ошибка, класс или перечисление неожиданным –

+0

Это ошибка времени компиляции на самом деле –

ответ

1

Просто измените зависимость щебета в вашем build.gradle от

compile('com.twitter.sdk.android:twitter:[email protected]') { 
    transitive = true; 
} 

в

compile('com.twitter.sdk.android:twitter:[email protected]') { 
    transitive = true; 
} 

Новая версия метода .verifyCredentials() не принимает обратный вызов, следовательно, ваша ошибка.

+0

Вы надеваете» t нужно установить переходное значение в true, если вы удалите '@ aar' из своей зависимости. –

1

Если вы проверите документацию по ткани, она показывает две версии метода, однако, когда я попытался открыть исходный код в Android Studio, но у него была только версия без обратного вызова.

Вы можете решить isssue следующим образом:

//Getting the account service of the user logged in 
Call<User> call = Twitter.getApiClient(session).getAccountService() 
     .verifyCredentials(true, false); 
call.enqueue(new Callback<User>() { 
     @Override 
     public void failure(TwitterException e) { 
      //If any error occurs handle it here 
     } 
     @Override 
     public void success(Result<User> userResult) { 
      //If it succeeds creating a User object from userResult.data 
      User user = userResult.data; 
        String twitterImage = user.profileImageUrl; 

        try { 
         Log.d("imageurl", user.profileImageUrl); 
         Log.d("name", user.name); 
         Log.d("email",user.email); 
         Log.d("des", user.description); 
         Log.d("followers ", String.valueOf(user.followersCount)); 
         Log.d("createdAt", user.createdAt); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
     } 
    }); 

Source

Documentation

Смежные вопросы