Java 为什么在.verifyCredentials()上出现错误
我想使用twitter的fabric api获取数据,但每当我试图验证凭据并使用回调时,就会显示错误,特别是“参数长度不同”Java 为什么在.verifyCredentials()上出现错误,java,android,twitter,Java,Android,Twitter,我想使用twitter的fabric api获取数据,但每当我试图验证凭据并使用回调时,就会显示错误,特别是“参数长度不同” void getUserData(){ getApiClient(会话).getAccountService() .verifyCredentials(真、假、新回调(){ @凌驾 公共无效失败(Twittere异常){ } @凌驾 public void成功(Result userResult){ User=userResult.data; 字符串twitterImag
void getUserData(){
getApiClient(会话).getAccountService()
.verifyCredentials(真、假、新回调(){
@凌驾
公共无效失败(Twittere异常){
}
@凌驾
public void成功(Result userResult){
User=userResult.data;
字符串twitterImage=user.profileImageUrl;
试一试{
Log.d(“imageurl”,user.profileImageUrl);
Log.d(“名称”,用户名);
Log.d(“电子邮件”,user.email);
Log.d(“des”,用户描述);
Log.d(“followers”,String.valueOf(user.followerscont));
Log.d(“createdAt”,user.createdAt);
}捕获(例外e){
e、 printStackTrace();
}
}
});
}
只需更改Build.Gradle中的twitter依赖项即可
从
到
.verifyCredentials()方法的新版本不接受回调,因此出现错误。如果您查看fabric文档,它会显示该方法的两个版本,但是当我尝试在Android Studio中打开源代码时,它只有没有回调的版本 您可以按以下方式解决问题:
//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();
}
}
});
//获取登录用户的帐户服务
Call Call=Twitter.getApiClient(会话).getAccountService()
.验证凭证(正确、错误);
call.enqueue(新回调(){
@凌驾
公共无效失败(Twittere异常){
//如果发生任何错误,请在此处处理
}
@凌驾
public void成功(Result userResult){
//如果它成功地从userResult.data创建用户对象
User=userResult.data;
字符串twitterImage=user.profileImageUrl;
试一试{
Log.d(“imageurl”,user.profileImageUrl);
Log.d(“名称”,用户名);
Log.d(“电子邮件”,user.email);
Log.d(“des”,用户描述);
Log.d(“followers”,String.valueOf(user.followerscont));
Log.d(“createdAt”,user.createdAt);
}捕获(例外e){
e、 printStackTrace();
}
}
});
error,class或enum unexpectedIt实际上是一个编译时错误。如果从依赖项中删除
@aar
,则不需要将transitive设置为true。例如,现在SDK已经更改,它有一个名为“includeEmail”的额外参数verifyCredentials
。我应该将其设置为真还是假?它还能做什么?它以前是怎么工作的?是真是假?
compile('com.twitter.sdk.android:twitter:2.0.0@aar') {
transitive = true;
}
compile('com.twitter.sdk.android:twitter:1.11.0@aar') {
transitive = true;
}
//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();
}
}
});