Se ha producido un error en la conexión de GoogleApiClient

Estoy tratando de usar los juegos de Google Api basado en turnos para mi juego para Android. El código que utilizo para conectar mi GoogleApiClient proviene de muestras o documentación de Api de Google.

Dentro de mi implementación de onConnectionFailed he intentado dos enfoques separados:

  if (signInClicked || autoStartSignInFlow) { autoStartSignInFlow = false; signInClicked = false; resolvingConnectionFailure = true; // Attempt to resolve the connection failure using BaseGameUtils. // The R.string.signin_other_error value should reference a generic // error string in your strings.xml file, such as "There was // an issue with sign-in, please try again later." if (!BaseGameUtils.resolveConnectionFailure(this, apiClient, connectionResult, RC_SIGN_IN, R.string.signin_other_error)) { resolvingConnectionFailure = false; } } 

El primer enfoque anterior proviene de la muestra TBMP Skeleton. Esto da lugar a un diálogo que se crea con el mensaje

No se ha podido iniciar sesión. Compruebe la conexión de red y vuelva a intentarlo.

Y la conexión nunca se hace.

  if (connectionResult.hasResolution()) { // https://developers.google.com/android/guides/api-client under 'Handle connection // failures'. I don't know if this is solving the problem but it doesn't lead to // 'please check your network connection' message. try { if(LoggerConfig.ON) { Log.e(TAG, "onConnectionFailure, attempting to startResolutionForResult."); } resolvingConnectionFailure = true; connectionResult.startResolutionForResult(this, REQUEST_RESOLVE_ERROR); } catch (IntentSender.SendIntentException e) { // There was an error with the resolution intent. Try again. if(LoggerConfig.ON) { Log.e(TAG, "onConnectionFailure, there was an error with resolution intent"); } apiClient.connect(); } } 

En el segundo enfoque termina llamando a startResolutionForResult que pasa RESULT_SIGN_IN_FAILED a onActivityResult. De la documentación

El código de resultado devuelto a la actividad de llamada al iniciar sesión falla.

El intento de iniciar sesión en el servicio de juegos falló. Por ejemplo, esto puede ocurrir si la red es escamosa, o si la cuenta del usuario se ha inhabilitado, o no se pudo obtener el consentimiento.

Esto me desconcierta ya que no tengo problemas para obtener el signo de flujo para trabajar en una muestra. Sin embargo, en mi juego nunca se me pide que seleccione una cuenta de Google antes de que se produzca un error en el inicio de sesión.

Para el registro he probado todos los pasos aquí https://developers.google.com/games/services/android/troubleshooting y todavía falla.

¿Cómo puedo resolver este error para iniciar sesión?

 private GoogleApiClient mGoogleApiClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Create the Google Api Client with access to the Play Games services mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Games.API).addScope(Games.SCOPE_GAMES) // add other APIs and scopes here as needed .build(); // ... } @Override protected void onStart() { super.onStart(); mGoogleApiClient.connect(); } @Override protected void onStop() { super.onStop(); mGoogleApiClient.disconnect(); } 

Para más información, consulte el enlace

Prueba private GoogleApiClient mGoogleApiClient;

  mGoogleApiClient = new GoogleApiClient.Builder(getActivity()) .addApi(LocationServices.API) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); 

Llame a mGoogleApiClient.connect(); En el método onStart() .

 @Override public void onStart() { super.onStart(); mGoogleApiClient.connect(); } 
  • Cómo utilizar las cámaras LibGDX con Box2D Debug Renderers
  • Comprobar la integridad de los activos de Android
  • API de Google Fit, obteniendo calorías por actividad
  • ¿Cómo trabajar con nuevas clases siendo compatible con versiones anteriores en android?
  • Android: AlertDialog Button no acepta el estilo
  • ¿Puede alguien explicarme por qué esta filtración?
  • El tamaño de imagen de Android cambia después de la devolución de llamada de la cámara
  • Java.lang.IllegalStateException: El hijo especificado ya tiene un padre. Debe llamar a removeView () en el padre del niño primero
  • Pixel Perfect Collision detection entre una vista personalizada y un ImageView
  • Android: remove () Fragmento -> add () nuevo Fragmento de la misma clase otra vez -> onCreateView y onActivityCreated no llamado?
  • La forma más robusta de obtener la carátula del álbum en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.