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


BaseGameUtils Error desconocido, onConnectionFailed: resultado 4

Ya he probado ButtonClicker 2000 ejemplo y funciona muy bien. Ahora estoy tratando de implementar Google Games Services en otro juego, pero da algunos errores:

06-06 12:30:46.353: D/BaseGameActivity(7982): isGooglePlayServicesAvailable returned 0 06-06 12:30:46.353: D/BaseGameActivity(7982): beginUserInitiatedSignIn: starting new sign-in flow. 06-06 12:30:46.416: D/BaseGameActivity(7982): Connecting GamesClient. 06-06 12:30:46.424: D/BaseGameActivity(7982): onStart. 06-06 12:30:46.424: D/BaseGameActivity(7982): onStart: connecting clients. 06-06 12:30:46.424: D/BaseGameActivity(7982): Connecting GamesClient. 06-06 12:30:46.424: E/GmsClient(7982): Calling connect() while still connected, missing disconnect(). 06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: result 4 06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: since user initiated sign-in, trying to resolve problem. 06-06 12:30:46.713: D/BaseGameActivity(7982): resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41692200: android.os.BinderProxy@416921a0}} 06-06 12:30:46.713: D/BaseGameActivity(7982): result has resolution. Starting it. 06-06 12:30:46.900: D/BaseGameActivity(7982): onActivityResult, req 9001 response 0 06-06 12:30:46.900: D/BaseGameActivity(7982): responseCode != RESULT_OK, so not reconnecting. 06-06 12:30:46.900: D/BaseGameActivity(7982): giveUp: giving up on connection. Status code: 4 06-06 12:30:46.900: D/BaseGameActivity(7982): Making error dialog for error: 4 

Com.google.android.gms registra el siguiente error:

 E/SignInActivity(7432): SignInActivity must be started with startActivityForResult 

Que he hecho:

  • He configurado correctamente el lado de la consola del programador. El SHA1 es correcto (coincide con el androiddebug keystore).
  • En la Consola de API todo parece estar bien.
  • He extendido GameBaseActivity y he implementado las interfaces solicitadas.
  • Tengo un ids.xml en la carpeta de valores que coincide con el de la Consola del Desarrollador.
  • He rechazado los métodos solicitados, incluidos onActivityResult ()
  • El manifiesto también está bien, incluye los metadatos solicitados.

  • Este es el código que utilizo para iniciar sesión en onCreate:

     setSignInMessages("SIGNING IN", "SIGNING OUT"); beginUserInitiatedSignIn(); 

Al probar el ejemplo Button Clicker 2000 tuve el error desconocido y lo arreglé configurando el tablero de mandos correctamente. El tablero de juego actual también está configurado correctamente, así que realmente no sé lo que está sucediendo. ¿Qué me estoy perdiendo?

EDITAR:

  • También intenté desempaquetar BaseGameActivity e implementar GameHelper directamente en mi actividad principal.
  • He intentado publicar la configuración de los juegos de aplicaciones (porque este juego ya está publicado en Play Store). Vinculé otra aplicación con mi clave SHA1 de publicación de firma. Establecido como aplicación principal para la instalación. Todavía no hay suerte.

  • El seguimiento de campañas no funciona después de pasar a Google Play Services
  • Detectar si otro jugador salió involuntariamente (por ejemplo, desconexión de Internet) y volver a conectar - Google play en tiempo real multijugador
  • Android GooglePlayServicesUtil.getErrorDialog () no muestra el diálogo
  • ¿Por qué se agregan automáticamente los permisos a mi AndroidManifest cuando incluye la biblioteca de Google Play Services?
  • Ejecución de Google Maps v2 en el emulador de Android
  • ¿Dónde encuentro el texto de atribución de Google Play Services?
  • Problemas al actualizar la nueva versión 10.2.0 de PlayServices y Firebase
  • Android no recibe actualizaciones de ubicación cuando la pantalla está bloqueada
  • 4 Solutions collect form web for “BaseGameUtils Error desconocido, onConnectionFailed: resultado 4”

    Eso es realmente extraño. El error que tienes, dependiendo de tus registros de BaseGameActivity, no debería suceder.

    SignInActivity no es visible en el código, puesto que lo inicia llamando a GameHelper.resolveConnectionResult que llamará mConnectionResult.startResolutionForResult(mActivity, RC_RESOLVE) . Eso es mConnectionResult que tiene el Propósito que lanzará SignInActivity . Y los registros de BaseGameActivity dicen que lo estás iniciando correctamente, de modo que, salvo si has hecho algunos cambios en BaseGameActivity y GameHelper, el error es extraño.

    ¿Dónde estás buscando los errores? ¿En su filtro de paquete? La información realmente útil se muestra en LogCat, pero no se encuentra en el filtro de aplicaciones. Busque todos los mensajes sin filtro, en LogCat, y busque las etiquetas Volley y GameAgent. Puede mostrarle algunos errores.

    Una cosa más: es el cuadro de diálogo de inicio de sesión sin embargo? ¿Cuándo se muestra el error SignInActivity (timestamp)?

    El error es muy claro:

     E/SignInActivity(): SignInActivity must be started with startActivityForResult 

    Esto significa que SignInActivity se está iniciando con startActivity lugar de startActivityForResult .

    Busque dónde se está iniciando esta actividad y cambie a startActivityForResult. ¡Si usted fijó un cierto código que podría ayudar más!

    De acuerdo a sus errores que está conectando el gamehelper dos veces (tal vez en su oncreate?) Y devuelve el estado de error 4. Usted no da el código, pero estoy seguro de saber cuál es su problema. Es posible que estés estropeando el inicio de sesión de Google con GamesClient.connect. Espera a que la cuenta de Google se conecte antes de conectar el gamesclient. yo si

     public void onSignInSucceeded() { mGamesClient.connect();} 

    Puedes crear el objeto GamesClient en tu onCreate, pero la conexión está mejor colocada en este método que te di. Pasé horas con este problema, espero poder ayudar

    Problema:

    ConnectionResult {statusCode = SIGN_IN_REQUIRED, resolution = PendingIntent {#: android.os.BinderProxy@#}}

    Resuelto por:

     @Override public void onConnectionFailed(ConnectionResult arg0) { <Your Code...> try { arg0.startResolutionForResult(this, 9001); } catch (SendIntentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

    Esto es sólo una demostración en bruto, manejar el ConnectionResult como sugieren google.

    Para más información haga clic aquí

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