Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Salir de la cuenta de Google Plus no funciona en android, mostrar excepción de puntero nulo

Estoy usando Google más inicio de sesión en mi aplicación android su trabajo bien.

Al hacer clic en Botón de cierre de sesión de cualquier otro intento Mostrar excepción de puntero nulo.

También mientras que el botón del tecleo del tecleo que va directamente a mi página siguiente .not en la página de la conexión.

Pero salir de la aplicación de demostración Su funcionamiento muy bien.

He buscado respuestas relacionadas, no se encontró ninguna solución sigue siendo la misma.

Ayúdame a resolverlo

Enlace 1

Enlace 2

He referido 2 enlaces pero salgo de la siguiente intención mostrando la excepción de puntero nulo.

Mi código de cierre de sesión:

public void googlePlusLogout() { if (mGoogleApiClient.isConnected()) { Plus.AccountApi.clearDefaultAccount(mGoogleApiClient); mGoogleApiClient.disconnect(); mGoogleApiClient.connect(); updateProfile(false); } } 

Aquí llamando el método de otra intención a la clase de inicio de sesión

Otherintent.java

  session.logoutUser();// here i am clearing the shared pref sign_in Signinclass = new sign_in(); Signinclass.googlePlusLogout(); finish(); 

Este es mi código de demostración está funcionando bien El mismo código que he usado en mi sesión de aplicación funciona bien, pero Desconectar llamando desde otra página no funciona. Mostrar excepción de puntero nulo.

AndroidGooglePlusExample .java

 public class AndroidGooglePlusExample extends Activity implements OnClickListener, ConnectionCallbacks, OnConnectionFailedListener { private static final int RC_SIGN_IN = 0; // Google client to communicate with Google private GoogleApiClient mGoogleApiClient; private boolean mIntentInProgress; private boolean signedInUser; private ConnectionResult mConnectionResult; private SignInButton signinButton; private ImageView image; private TextView username, emailLabel; private LinearLayout profileFrame, signinFrame; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); signinButton = (SignInButton) findViewById(R.id.signin); signinButton.setOnClickListener(this); image = (ImageView) findViewById(R.id.image); username = (TextView) findViewById(R.id.username); emailLabel = (TextView) findViewById(R.id.email); profileFrame = (LinearLayout) findViewById(R.id.profileFrame); signinFrame = (LinearLayout) findViewById(R.id.signinFrame); mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(Plus.API, Plus.PlusOptions.builder().build()).addScope(Plus.SCOPE_PLUS_LOGIN).build(); } protected void onStart() { super.onStart(); mGoogleApiClient.connect(); } protected void onStop() { super.onStop(); if (mGoogleApiClient.isConnected()) { mGoogleApiClient.disconnect(); } } private void resolveSignInError() { if (mConnectionResult.hasResolution()) { try { mIntentInProgress = true; mConnectionResult.startResolutionForResult(this, RC_SIGN_IN); } catch (SendIntentException e) { mIntentInProgress = false; mGoogleApiClient.connect(); } } } @Override public void onConnectionFailed(ConnectionResult result) { if (!result.hasResolution()) { GooglePlayServicesUtil.getErrorDialog(result.getErrorCode(), this, 0).show(); return; } if (!mIntentInProgress) { // store mConnectionResult mConnectionResult = result; if (signedInUser) { resolveSignInError(); } } } @Override protected void onActivityResult(int requestCode, int responseCode, Intent intent) { switch (requestCode) { case RC_SIGN_IN: if (responseCode == RESULT_OK) { signedInUser = false; } mIntentInProgress = false; if (!mGoogleApiClient.isConnecting()) { mGoogleApiClient.connect(); } break; } } @Override public void onConnected(Bundle arg0) { signedInUser = false; Toast.makeText(this, "Connected", Toast.LENGTH_LONG).show(); getProfileInformation(); } private void updateProfile(boolean isSignedIn) { if (isSignedIn) { signinFrame.setVisibility(View.GONE); profileFrame.setVisibility(View.VISIBLE); } else { signinFrame.setVisibility(View.VISIBLE); profileFrame.setVisibility(View.GONE); } } private void getProfileInformation() { try { if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) { Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient); String personName = currentPerson.getDisplayName(); String personPhotoUrl = currentPerson.getImage().getUrl(); String email = Plus.AccountApi.getAccountName(mGoogleApiClient); username.setText(personName); emailLabel.setText(email); new LoadProfileImage(image).execute(personPhotoUrl); // update profile frame with new info about Google Account // profile updateProfile(true); } } catch (Exception e) { e.printStackTrace(); } } @Override public void onConnectionSuspended(int cause) { mGoogleApiClient.connect(); updateProfile(false); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.signin: googlePlusLogin(); break; } } public void signIn(View v) { googlePlusLogin(); } public void logout(View v) { googlePlusLogout(); } private void googlePlusLogin() { if (!mGoogleApiClient.isConnecting()) { signedInUser = true; resolveSignInError(); } } private void googlePlusLogout() { if (mGoogleApiClient.isConnected()) { Plus.AccountApi.clearDefaultAccount(mGoogleApiClient); mGoogleApiClient.disconnect(); mGoogleApiClient.connect(); updateProfile(false); } } // download Google Account profile image, to complete profile private class LoadProfileImage extends AsyncTask<String, Void, Bitmap> { ImageView downloadedImage; public LoadProfileImage(ImageView image) { this.downloadedImage = image; } protected Bitmap doInBackground(String... urls) { String url = urls[0]; Bitmap icon = null; try { InputStream in = new java.net.URL(url).openStream(); icon = BitmapFactory.decodeStream(in); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } return icon; } protected void onPostExecute(Bitmap result) { downloadedImage.setImageBitmap(result); } } 

One Solution collect form web for “Salir de la cuenta de Google Plus no funciona en android, mostrar excepción de puntero nulo”

Encontré la solución para mi pregunta

Agregue este código en su página de actividad de sesión. Sus trabajos perfectamente

Actividad de mi página de cierre de sesión

  public class LogoutActivity extends Activity implements OnClickListener, ConnectionCallbacks, OnConnectionFailedListener, ResultCallback<People.LoadPeopleResult> { GoogleApiClient mGoogleApiClient; boolean mSignInClicked; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this).addApi(Plus.API) .addScope(Plus.SCOPE_PLUS_LOGIN).build(); //copy this code on "Logout" Onclick logout.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (mGoogleApiClient.isConnected()) { Plus.AccountApi.clearDefaultAccount(mGoogleApiClient); mGoogleApiClient.disconnect(); mGoogleApiClient.connect(); // updateUI(false); System.err.println("LOG OUT ^^^^^^^^^^^^^^^^^^^^ SUCESS"); } } }); } @Override public void onConnected(Bundle arg0) { // TODO Auto-generated method stub mSignInClicked = false; // updateUI(true); Plus.PeopleApi.loadVisible(mGoogleApiClient, null).setResultCallback( this); } @Override public void onConnectionSuspended(int arg0) { // TODO Auto-generated method stub mGoogleApiClient.connect(); // updateUI(false); } @Override public void onConnectionFailed(ConnectionResult arg0) { // TODO Auto-generated method stub } protected void onStart() { super.onStart(); mGoogleApiClient.connect(); } protected void onStop() { super.onStop(); if (mGoogleApiClient.isConnected()) { mGoogleApiClient.disconnect(); } } @Override public void onResult(LoadPeopleResult arg0) { // TODO Auto-generated method stub } 

Enlace para referencia

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.