"Llamar esto desde su hilo principal puede llevar a deadlock y / o ANRs mientras obtiene accesToken" de GoogleAuthUtil (integración de Google Plus en Android)

En mi aplicación de Android, estoy tratando de obtener AccessToken de GoogleAuthUtil como a continuación:

AccessToken = GoogleAuthUtil.getToken (esto, mPlusClient.getAccountName (), "oauth2:" + SCOPES);

Pero en esta línea estoy gettting error como abajo:

E / GoogleAuthUtil (4696): llamando esto desde su hilo principal puede conducir a deadlock y / o ANRs E / GoogleAuthUtil (4696): java.lang.IllegalStateException: : En com.google.android.gms.auth.GoogleAuthUtil.b (fuente desconocida) E / GoogleAuthUtil (4696): en com.google.android.gms.auth.GoogleAuthUtil.getToken (fuente desconocida) E / GoogleAuthUtil (4696) : En com.google.android.gms.auth.GoogleAuthUtil.getToken (fuente desconocida)

¿Alguna solución de este problema? Cualquier ayuda será apreciada.

Pruébelo con un AsyncTask como este:

AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { String token = null; try { token = GoogleAuthUtil.getToken( MainActivity.this, mGoogleApiClient.getAccountName(), "oauth2:" + SCOPES); } catch (IOException transientEx) { // Network or server error, try later Log.e(TAG, transientEx.toString()); } catch (UserRecoverableAuthException e) { // Recover (with e.getIntent()) Log.e(TAG, e.toString()); Intent recover = e.getIntent(); startActivityForResult(recover, REQUEST_CODE_TOKEN_AUTH); } catch (GoogleAuthException authEx) { // The call is not ever expected to succeed // assuming you have already verified that // Google Play services is installed. Log.e(TAG, authEx.toString()); } return token; } @Override protected void onPostExecute(String token) { Log.i(TAG, "Access token retrieved:" + token); } }; task.execute(); 

SCOPES es una lista separada por espacios de las cadenas de alcance OAuth 2.0. Por ejemplo SCOPES podría definirse como:

 public static final String SCOPES = "https://www.googleapis.com/auth/plus.login " + "https://www.googleapis.com/auth/drive.file"; 

Estos representan los permisos que su aplicación solicita al usuario. Los ámbitos solicitados en este ejemplo están documentados aquí:

Utilice el hilo de rosca separado para su código del Internet. El error es decir que el proceso más lento que se está ejecutando en la aplicación y aquí que es internet. Por lo tanto, utilice una tarea de hilo o Async independiente.

Echa un vistazo a este enlace NetworkOnMainThreadException

Espero que te ayude.

E / GoogleAuthUtil (4696): java.lang.IllegalStateException: llamar a este de su hilo principal puede dar lugar a interbloqueo

Suena como si necesitas hacer eso en un hilo separado, ¿has intentado eso?

Aquí puede encontrar información sobre temas en Android.

  Thread CrearEventoHilo = new Thread(){ public void run(){ //do something that retrun "Calling this from your main thread can lead to deadlock" } }; CrearEventoHilo.start(); CrearEventoHilo.interrupt(); 
  • Google inicia sesión y termina sesión en android con la última API de g-plus
  • Google OAuth2 - token de acceso y token de actualización -> invalid_grant / Code ya se redimió
  • Crear nuevo ParseUser usando Google+ AccessToken devuelve InvalidSession?
  • Acceda a google plus client desde múltiples actividades
  • Google plus url compartida no renderizado
  • Widget de cuadrícula Android de Google+ para el tutorial de tableta
  • Cómo obtener vídeos (no locales) de la aplicación Google Fotos
  • Android GridView de columna, anchura variable como la aplicación GooglePlus
  • Google plus para android: credenciales no válidas
  • Deprecated Plus.PeopleApi.load
  • Google api gettoken (Context, String, String) ahora está obsoleto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.