Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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
Android 如何在另一个片段中从Google身份验证注销?_Android_Android Fragments_Firebase Authentication_Google Authentication - Fatal编程技术网

Android 如何在另一个片段中从Google身份验证注销?

Android 如何在另一个片段中从Google身份验证注销?,android,android-fragments,firebase-authentication,google-authentication,Android,Android Fragments,Firebase Authentication,Google Authentication,我用谷歌认证登录。它将启动另一个Java的意图。在这个片段中,我有一个注销按钮,但每次我想注销时,应用程序都会崩溃。 你们能帮我吗?:) 我收到的错误消息是: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“android.content.Context com.google.android.gms.common.api.GoogleAppClient.getContext()” 代码: 公共类设置扩展活动{ 专用按钮msigno; 私人消防队; 私人

我用谷歌认证登录。它将启动另一个Java的意图。在这个片段中,我有一个注销按钮,但每次我想注销时,应用程序都会崩溃。 你们能帮我吗?:)

我收到的错误消息是:

java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“android.content.Context com.google.android.gms.common.api.GoogleAppClient.getContext()”

代码:

公共类设置扩展活动{
专用按钮msigno;
私人消防队;
私人GoogleapClient MGoogleapClient;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
DisplayMetrics dm=新的DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width=dm.widthPixels;
int高度=dm.widthPixels;
setLayout((int)(宽度*0.95),(int)(高度*0.93));
msigno=(按钮)findViewById(R.id.signout);
msigno.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
mAuth=FirebaseAuth.getInstance();
开关(v.getId()){
// ...
案例R.id.注销:
签出();
打破
// ...
}
mAuth.signOut();
//谷歌注销
Auth.GoogleSignInApi.signOut(mgoogleapclient.setResultCallback)(
新的ResultCallback(){
@凌驾
public void onResult(@NonNull状态){
}
});
Intent intent2=新的Intent(Setttings.this,MainActivity.class);
星触觉(intent2);
}
});
}
私有无效签出(){
Auth.GoogleSignInApi.signOut(mgoogleapclient.setResultCallback)(
新的ResultCallback(){
@凌驾
公共void onResult(状态){
// ...
}
});
}
}

需要初始化API客户端才能注销

@Override
protected void onStart() {
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();
    mGoogleApiClient.connect();
    super.onStart();
}
@Override
protected void onStart() {
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();
    mGoogleApiClient.connect();
    super.onStart();
}