在我的Android代码中,我正在检查解析当前用户的条件。如果用户登录了某些操作正在执行,如果没有其他操作正在执行。但是当我在用户注销后检查条件时,ParseUser.getCurrentUser()返回对象,当我尝试通过parseCurrentUserObject访问数据时,应用程序崩溃,获得NullpointerException或IllegalStateException。
我也浏览了Parse for Android : ParseUser.logOut() doesn't log user out链接 但是不要为我锻炼。
代码是 -
`
ParseUser.logOut();
if (ParseUser.getCurrentUser() != null) {
Log.d("userType: ", ParseUser.getCurrentUser().getString("userType")
.toString());
tabSettingForPrivateUser(rootView);
} else {
tabSettingForPublicUser(rootView);
}
`
应用程序崩溃在日志消息,我试图从对象访问数据:
Log.d("userType: ", ParseUser.getCurrentUser().getString("userType").toString());
此行的LogCat错误消息 -
08-15 17:58:05.250: E/AndroidRuntime(1220): Caused by: java.lang.NullPointerException
如何处理这个问题?
答案 0 :(得分:0)
文档非常明确地说:
public static void logOut()
注销当前登录的用户 会话。这将从磁盘中删除会话,注销链接 服务以及将来对ParseUser.getCurrentUser()的调用将返回 空值。
如果对ParseUser.getCurrentUser()
的方法调用行为不符合预期,则这是API中的错误。
您是否尝试过使用调试器并设置断点,以便在应用崩溃时查看哪些变量为空?你确定你得到的String
是空的吗?
此外,您正在使用密钥访问ParseObject
中的值。将密钥集中在interface
中绝对是一个好主意。使调试更容易,代码更易于维护。为密钥编写原始字符串值绝对是一种灾难。