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