当从谷歌登录点击退出时,android强制停止

时间:2016-07-17 03:53:06

标签: android onclick android-alertdialog google-signin

当从谷歌登录点击退出时,

android force stop。

当我的app用户点击退出按钮然后我调用功能确认框,如果用户点击yaok,那么用户将注销但现在当用户点击ya时强行停止ok

这是我的代码

private void confirmationBox() {
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Apakah Anda Yakin?")
                .setCancelable(false)
                .setPositiveButton("Ya", new DialogInterface.OnClickListener() {
                    public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                        Auth.GoogleSignInApi.revokeAccess(mGoogleApiClient).setResultCallback(
                                new ResultCallback<Status>() {
                                    @Override
                                    public void onResult(Status status) {

                                    }
                                });
                        session.logoutUser();
                        Intent intent = new Intent(getApplicationContext(),LoginActivity.class);
                        startActivity(intent);
                        finish();
                    }
                })
                .setNegativeButton("Tidak", new DialogInterface.OnClickListener() {
                    public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                        dialog.cancel();
                    }
                });
        final AlertDialog alert = builder.create();
        alert.show();
    }

GoogleSignInOption

private void setGoogleSignInAccount() {
        // Configure sign-in to request the user's ID, email address, and basic profile. ID and basic profile are included in DEFAULT_SIGN_IN.
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .build();

        // Build a GoogleApiClient with access to the Google Sign-In API and the options specified by gso.
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();
    }

这是我的logcat

07-17 10:47:55.871 26064-26064/com.emergency.e_place E/AndroidRuntime: FATAL EXCEPTION: main
                                                                       Process: com.emergency.e_place, PID: 26064
                                                                       java.lang.NullPointerException: Appropriate Api was not requested.
                                                                           at com.google.android.gms.common.internal.zzx.zzb(Unknown Source)
                                                                           at com.google.android.gms.common.api.internal.zzj.zza(Unknown Source)
                                                                           at com.google.android.gms.common.api.internal.zzg.zza(Unknown Source)
                                                                           at com.google.android.gms.common.api.internal.zzg.zzb(Unknown Source)
                                                                           at com.google.android.gms.common.api.internal.zzl.zzb(Unknown Source)
                                                                           at com.google.android.gms.common.api.internal.zzj.zzb(Unknown Source)
                                                                           at com.google.android.gms.auth.api.signin.internal.zzc.revokeAccess(Unknown Source)
                                                                           at com.emergency.e_place.MainActivity$10.onClick(MainActivity.java:832)
                                                                           at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:153)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:146)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5511)
                                                                           at java.lang.reflect.Method.invokeNative(Native Method)
                                                                           at java.lang.reflect.Method.invoke(Method.java:515)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                                                                           at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:1)

您缺少登录API。这行应该在你的代码中。

.addApi(Auth.GOOGLE_SIGN_IN_API

请参阅how to setup the Sign In API