Toast: Error interno con la integración de Google Plus en Android

Estoy integrando Google Plus en mi aplicación de Android. He creado el proyecto en la Consola de API de Google. He creado el ID de cliente de OAuth y he duplicado comprobar el nombre del paquete y Keystore SHA1, pero ambos son correctos, pero todavía estoy recibiendo el Internal Error Occur .

He visto muchos hilos, pero sobre todo diciendo el relacionado con SHA1 y el nombre del paquete que es correcto aquí.

Chicos compartir sus puntos de vista.


Edit: he probado usando el debug.keystore y personalizado creado keystore pero nada funcionó para mí.

setScopes("PLUS_LOGIN") tampoco es útil para mí.


 public class MainActivity extends Activity implements ConnectionCallbacks, OnConnectionFailedListener, OnClickListener { private static final int REQUEST_CODE_RESOLVE_ERR = 9000; private ProgressDialog mConnectionProgressDialog; private PlusClient mPlusClient; private ConnectionResult mConnectionResult; private static final String TAG = "Google Plus Demo"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPlusClient = new PlusClient.Builder(this, this, this) .setActions("http://schemas.google.com/AddActivity", "http://schemas.google.com/BuyActivity") .setScopes(Scopes.PLUS_LOGIN).build(); // Progress Bar to be displayed if the connection failure is not // resolved. mConnectionProgressDialog = new ProgressDialog(this); mConnectionProgressDialog.setMessage("Signing in..."); findViewById(R.id.sign_in_button).setOnClickListener(this); } @Override protected void onStart() { super.onStart(); mPlusClient.connect(); } @Override protected void onStop() { super.onStop(); mPlusClient.disconnect(); } @Override protected void onActivityResult(int requestCode, int responseCode, Intent intent) { if(requestCode == REQUEST_CODE_RESOLVE_ERR && responseCode == RESULT_OK) { mConnectionResult = null; mPlusClient.connect(); } } @Override public void onConnectionFailed(ConnectionResult result) { if(mConnectionProgressDialog.isShowing()) { // The user clicked on the sign-in button already. Start to resolve // connection errors. Wait until onConnected() to dismiss the // connection dialog. if(result.hasResolution()) { try { result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR); } catch(SendIntentException e) { mPlusClient.connect(); } } } // Save the result mConnectionResult = result; } @Override public void onConnected(Bundle connectionHint) { String accountName = mPlusClient.getAccountName(); Toast.makeText(this, accountName, Toast.LENGTH_LONG).show(); mConnectionProgressDialog.dismiss(); } @Override public void onDisconnected() { Log.d(TAG, "Disconnected"); } @Override public void onClick(View view) { if(view.getId() == R.id.sign_in_button && !mPlusClient.isConnected()) { if(mConnectionResult == null) { mConnectionProgressDialog.show(); } else { try { mConnectionResult.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR); } catch(SendIntentException e) { // Try connecting again mConnectionResult = null; mPlusClient.connect(); } } } } } 

Registros

 01-27 20:22:23.871: I/GLSUser(1699): GLS error: INVALID_SCOPE [email protected] oauth2:PLUS_LOGIN 01-27 20:22:23.871: W/GLSActivity(1699): [aia] Status from wire: INVALID_SCOPE status: INVALID_SCOPE 01-27 20:22:23.965: W/InputManagerService(1536): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4076b580 01-27 20:22:24.020: I/eFrame(3180): pkgname_before:com.google.android.gms class:com.xicom.appdemo.MainActivity 01-27 20:22:24.027: D/SurfaceFlinger(1536): Layer[34bee8]:: Tile format buffer w[256] h[64] f[1] v[0x47855000] p[0x97fd5000] sz[65536] 01-27 20:22:25.012: V/AudioFlinger(1323): Audio hardware entering standby, mixer 0x6f228, mSuspended 0 01-27 20:22:25.012: D/AudioStreamOutALSA(1323): AudioStreamOutALSA::standby--pause 01-27 20:22:25.106: V/AudioFlinger(1323): MixerThread 0x6f228 TID 1473 going to sleep 01-27 20:22:27.684: W/PowerManagerService(1536): Timer 0x3->0x3|0x3 01-27 20:22:27.691: D/BatteryService(1536): update start 

Código:

 mPlusClient = new PlusClient.Builder(this, this, this) .setActions("http://schemas.google.com/AddActivity", "http://schemas.google.com/BuyActivity") .build(); 

Registro de la segunda versión

 01-28 22:25:16.164: D/SurfaceFlinger(1536): Layer[37c9c0]:: Tile format buffer w[256] h[320] f[1] v[0x4ac99000] p[0x94741000] sz[327680] 01-28 22:25:17.007: D/SurfaceFlinger(1536): Layer[8a5a68] [4] non-RGB565 reloads 01-28 22:25:17.250: I/fno(2652): I/O exception (javax.net.ssl.SSLException) caught when processing request: Write error: ssl=0x25d728: I/O error during system call, Broken pipe 01-28 22:25:17.250: I/fno(2652): Retrying request 01-28 22:25:18.015: D/SurfaceFlinger(1536): Layer[8a5a68] [10] non-RGB565 reloads 01-28 22:25:18.101: V/AudioFlinger(1323): Audio hardware entering standby, mixer 0x6f228, mSuspended 0 01-28 22:25:18.101: D/AudioStreamOutALSA(1323): AudioStreamOutALSA::standby--pause 01-28 22:25:18.187: D/BatteryService(1536): update start 01-28 22:25:18.195: V/AudioFlinger(1323): MixerThread 0x6f228 TID 1473 going to sleep 01-28 22:25:19.015: D/SurfaceFlinger(1536): Layer[8a5a68] [10] non-RGB565 reloads 01-28 22:25:19.484: W/GLSActivity(2652): [aia] Status from wire: INVALID_CLIENT_ID status: null 01-28 22:25:19.484: W/GLSActivity(2652): [aia] Status from wire: INVALID_CLIENT_ID status: null 01-28 22:25:19.484: I/GLSUser(2652): GLS error: INVALID_CLIENT_ID [email protected] oauth2:https://www.googleapis.com/auth/plus.login 01-28 22:25:19.484: W/GLSActivity(2652): [aia] Status from wire: Unknown status: UNKNOWN 01-28 22:25:19.570: D/dalvikvm(20673): GC_EXTERNAL_ALLOC freed 163K, 43% free 3397K/5959K, external 511K/517K, paused 47ms 01-28 22:25:19.664: W/InputManagerService(1536): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40605c00 01-28 22:25:19.781: D/SurfaceFlinger(1536): Layer[278dc0]:: Tile format buffer w[256] h[64] f[1] v[0x49520000] p[0x97fcc000] sz[65536] 01-28 22:25:19.835: I/eFrame(20257): pkgname_before:com.google.android.gms class:com.xicom.appdemo.MainActivity 01-28 22:25:20.046: D/dalvikvm(20257): GC_CONCURRENT freed 384K, 49% free 3021K/5895K, external 412K/517K, paused 4ms+6ms 01-28 22:25:20.757: W/PowerManagerService(1536): Timer 0x3->0x3|0x3 01-28 22:25:23.203: D/BatteryService(1536): update start 

Tuve el mismo problema, y ​​lo resolví mirando alrededor en la consola del revelador.

Resulta que debe rellenar la información necesaria sobre su proyecto para la pantalla de consentimiento.

Solución:

  • Vaya a la Consola del programador
  • API y Auth
  • Pantalla de Consentimiento

Elija su correo electrónico e inserte el nombre de su proyecto. La próxima vez que inicie su aplicación tendrá la pantalla de consentimiento adecuado y luego todo funcionará bien.

¿Obtiene alguna salida en logcat para ir con el error? Intente habilitar el registro detallado si no lo ha hecho (consulte https://developers.google.com/+/mobile/android/getting-started#frequently_asked_questions )

 adb shell setprop log.tag.GooglePlusPlatform VERBOSE 

Editar: Gracias por agregar los registros. El error de GLS es el interesante allí:

I / GLSUser (1699): Error de GLS: INVALID_SCOPE [email protected] oauth2: PLUS_LOGIN

Puedes comprobar que has habilitado la API de Google+ en tu proyecto de consola de API y que también puedes intentar eliminar completamente la línea de setScopes (PLUS_LOGIN será el predeterminado, por lo que parece la manera más fácil de probar si algo interesante está ocurriendo).

No estoy seguro de la parte superior de mi cabeza si PLUS_LOGIN estar en su es indicativo de un reemplazo no suceda, o es sólo el registro parece que, pero eliminar la línea debe eliminar de la ecuación.

EDITAR – basado en su volcado actualizado el alcance ahora se ve bien pero hay un error inválido del identificador del cliente allí. Asegúrese de que no hay ningún espacio al final de su sha 1 en el ID de cliente y que el nombre del paquete coincide exactamente. También intenta borrar la caché en el servicio de Google Play (borrar datos del menú en la aplicación de configuración de google).

Debe llenar la "Pantalla de Consentimiento", nada más funciona si no llena el contenido en "Pantalla de Consentimiento".

En mi caso, tomó algún tiempo ver la pantalla de consentimiento. Después de hacer cambios en la consola api es mejor esperar 5-10 minutos y luego intentar proceso de inicio de sesión.

  • Android / Google + Cómo saber si los amigos del usuario han instalado la aplicación
  • ¿Cómo obtener un token de actualización para google plus en android?
  • El cuadro de diálogo "Elegir una cuenta" de Google Plus aparece dos veces
  • "Código": 403, y "razón": excepción "prohibida" al cargar el archivo en google plus
  • Cómo obtener direcciones de correo electrónico de círculos de Google Plus (Amigos agregados en círculos de Google y más)
  • API_UNAVAILABLE Cliente de API de Google
  • Cómo obtener amigos de Google+ en Android
  • Error "No se puede crear una conexión fiable con el servidor" al iniciar sesión con google plus
  • Integración de Google Plus en la aplicación Android
  • Token de acceso recuperado: null. Com.google.android.gms.auth.GoogleAuthException: Desconocido
  • Constante de alcance para correo electrónico con GoogleApiClient.Builder
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.