Java 当我尝试注销时,应用程序崩溃
我正在开发一个应用程序,用户通过谷歌登录进行身份验证。 登录是完美的,但如果我使用Java 当我尝试注销时,应用程序崩溃,java,android,firebase,Java,Android,Firebase,我正在开发一个应用程序,用户通过谷歌登录进行身份验证。 登录是完美的,但如果我使用 mAuth.signOut(); 这让我退出firebase,而不是谷歌账户。当我尝试登录时,它会使用我刚才使用的帐户登录,而我没有选择帐户的选项。 我按照google文档注销用户并断开帐户连接。 我的按钮代码: btnlogout.setOnClickListener(new View.OnClickListener() { @Override public
mAuth.signOut();
这让我退出firebase,而不是谷歌账户。当我尝试登录时,它会使用我刚才使用的帐户登录,而我没有选择帐户的选项。
我按照google文档注销用户并断开帐户连接。
我的按钮代码:
btnlogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
signOut();
}
});
我的注销代码
private void signOut() {
mGoogleSignInClient.signOut()
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
startActivity(new Intent(TempActivity.this,MainActivity.class));
}
});
}
private void signOut(){
mGoogleSignInClient.signOut()
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
startActivity(新意图(TempActivity.this,MainActivity.class));
}
});
}
按钮在onCreate中。当我按下注销按钮时,我的应用程序崩溃。有什么想法吗?调用signout java.lang.NullPointerException时出现错误。您需要确保引用的是同一个
GoogleSignInClient
对象。在我看来,您正在类中使用另一个GoogleSignInClient
对象来处理尚未初始化的注销,从而导致nullpointer异常
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
然后,您需要在处理注销的类中使用对
mGoogleSignInClient
的相同引用。请发布crashjava.lang.NullPointerException的日志,这是我调用注销的行,mGoogleSignInClient.signout行以及在我声明公共类的开始处..您在哪里初始化mGoogleSignInClient
?在发生登录的另一个类处打开mGoogleSignInClient=GoogleSignIn.getClient(此,gso)您需要提供完整的崩溃堆栈跟踪。将此代码添加到signout类,我没有收到任何错误,但它不会将我返回到signIn activity如果要返回到signIn activity,则需要调用startActivity(new Intent(currentActivity.this,loginActivity.class))并将currentActivity和loginActivity更改为您所调用的任何名称,非常感谢,它成功了,我在onStart()中调用了它