Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我尝试注销时,应用程序崩溃_Java_Android_Firebase - Fatal编程技术网

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()中调用了它