Ich verwende den Google-Login, um mich beim Benutzer anzumelden. Ich handhabe Login in einer anderen Aktivität und ich habe eine Abmelde-Taste in einer anderen Aktivität.Google+ signout-Methode gibt nullpointer-Ausnahme zurück
In der obigen Methode signiere ich den Benutzer ab und führe eine Funktion aus, um den Benutzer zur Anmeldeaktivität zu leiten. Aber wenn ich die Abmeldeschaltfläche drücke, erhalte ich den folgenden Nullpointer-Fehler.
09-22 16:42:29.660 4459-4459/com.myapplication.tester E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapplication.tester, PID: 4459
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.google.android.gms.common.api.GoogleApiClient.isConnected()' on a null object reference
at com.myapplication.tester.BaseActivity.signOut(BaseActivity.java:190)
at com.myapplication.tester.BaseActivity.onOptionsItemSelected(BaseActivity.java:180)
at android.app.Activity.onMenuItemSelected(Activity.java:2948)
at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:406)
at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:103)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:103)
at android.support.v7.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:69)
at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:203)
at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:759)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:810)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:957)
at android.support.v7.view.menu.MenuPopup.onItemClick(MenuPopup.java:127)
at android.widget.AdapterView.performItemClick(AdapterView.java:310)
Ich würde mich freuen, wenn mir jemand helfen kann, dieses Problem zu beheben.
Bearbeiten - Ich habe auch versucht, ohne die GoogleApiClient Verbindung überprüft, aber ich bin immer noch Nullpointer Fehler immer
public abstract class BaseActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private Toolbar mActionBarToolbar;
private DrawerLayout mDrawerLayout;
protected NavigationView mNavigationView;
private ActionBarDrawerToggle mToggle;
//Initialized mGoogleApiClient
GoogleApiClient mGoogleApiClient;
private GoogleApiClient client;
protected boolean useToolbar() {
return true;
}
protected boolean useDrawerToggle() {
return true;
}
@Override
public void setContentView(int layoutResID) {
super.setContentView(layoutResID);
getActionBarToolbar();
setupNavDrawer();
}//end setContentView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
private void signOut() {
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
loadloginActivity();
}
});
}
}
Wo initialisieren Sie 'mGoogleApiClient'? – Egor
Ich initialisierte am Anfang der Klasse vor der OnCreate-Methode. Hinzugefügt das auf dem Code. Vielen Dank. – Aksh
Es ist nicht "initialisiert". Es ist nur deklariert, mit dem Standardwert von null. – shmosel