2013-11-18 4 views
0

Я пытаюсь использовать GoogleAuthUtil.getToken для создания токена, который я могу использовать для входа в другую службу. Когда я пытаюсь использовать этот метод, мое приложение «зависает» и перестает отвечать. В конце концов мой телефон выплескивает некоторые сообщения об ошибках ввода-вывода. Я не получаю никакого результата от сервера.GoogleAuthUtil.getToken вызывает сбой приложения для Android

Адрес электронной почты - мой адрес электронной почты, отформатированный как [email protected] Я использовал адрес сервера для своей области, но прямо сейчас я просто пытаюсь использовать самые простые строки, чтобы получить результат, чтобы я может начать работать.

public class GetTokens extends AsyncTask<String,Void,String>{ 
Context c; 
String TAG = "wnycmap issues"; 

public GetTokens(Context c) { 
    this.c=c; 
} 

@Override 
protected String doInBackground(String...mEmail) { 
    String token = "null"; 
    String mScope = "oauth2:https://www.googleapis.com/auth/plus.me"; 
    String email = mEmail[0]; 
    System.out.println(c+email+mScope); 
    try { 
     token = GoogleAuthUtil.getToken(
       c, 
       email, 
       mScope); 

     System.out.println(token); 
    } 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) { 
     Log.e(TAG, authEx.toString()); 
    } 

    return token; 

Ошибки:

E/SnepServer(32677): IO error 
E/SnepServer(32677): java.io.IOException 
E/SnepServer(32677): at com.android.nfc.dhimpl.NativeLlcpServiceSocket.accept(NativeLlcpServiceSocket.java:42) 
E/SnepServer(32677): at com.android.nfc.snep.SnepServer$ServerThread.run(SnepServer.java:213) 
D/NdefPushServer(32677): stop, thread = Thread[Thread-8152,5,main] 
D/NdefPushServer(32677): shuting down server thread 
E/HandoverServer(32677): IO error 
E/HandoverServer(32677): java.io.IOException 
E/HandoverServer(32677): at com.android.nfc.dhimpl.NativeLlcpServiceSocket.accept(NativeLlcpServiceSocket.java:42) 
E/HandoverServer(32677): at com.android.nfc.handover.HandoverServer$ServerThread.run(HandoverServer.java:108) 
E/NdefPushServer(32677): IO error 
E/NdefPushServer(32677): java.io.IOException 
E/NdefPushServer(32677): at com.android.nfc.dhimpl.NativeLlcpServiceSocket.accept(NativeLlcpServiceSocket.java:42) 
E/NdefPushServer(32677): at com.android.nfc.ndefpush.NdefPushServer$ServerThread.run(NdefPushServer.java:154) 

И код, который я использую, чтобы позвонить моему AsyncTask

private void authenticate() { 
     String accountEmail="asdf"; 
     String authToken = "null"; 
     AccountManager am = AccountManager.get(context); 
     Account[] accounts = am.getAccountsByType("com.google"); 

     if (accounts != null){ 
      Account account = accounts[0]; 
      accountEmail = account.name; 

      System.out.println(context); 
      try { 
       authToken=new GetTokens(context).execute(accountEmail).get(); 
      } catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (ExecutionException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
}  
+0

На боковой ноте я, похоже, вообще не поймаю эти ошибки. Я просто попытался запустить свой код с помощью catch (Exception e), и он по-прежнему выполняется таким же образом. – user17601

+0

Я получаю следующие предупреждения каждый раз, когда я пытаюсь использовать googleAuthUtil – user17601

ответ

0

Попробуйте несколько вещей,

  1. Помещенный улов GooglePlayServicesAvailabilityException
  2. Проверьте, если вы разместили правильные мета-данные в элементе приложения в AndroidManifest.xml <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
  3. Поместите задвижку для RuntimeException в качестве последнего средства, чтобы выкопать источник аварии.
Смежные вопросы