2016-04-07 2 views
0

У меня проблема с моим текущим приложением. My OAuth2.0 SHA1 правильный и сгенерирован из файла хранилища ключей версии выпуска. Моя проблема в том, что я получаю resultCode = 0 каждый раз на onActivityResult. Я распечатываю значение намерения и получаю ниже: googleSignInStatus = Status {statusCode = INTERNAL_ERROR, resolution = null} Но если я запустил его в режиме отладки, то логин работает отлично, и для этого случая значение намерения: googleSignInAccount = com .google.android.gms.auth.api.signin.GoogleSignInAccount @ 31976389]Google не работает над версией выпуска android

Неужели кто-нибудь знает, как решить эту проблему. ПРИМЕЧАНИЕ. Где-то я нашел одно сообщение, которое они рекомендуют поместить в адрес электронной почты и название проекта на экране конкурса OAuth; Я уже пробовал это и все еще не работаю.

+0

получить ключ SHA1 для выпуска Build-> добавить ключ SHA1 в консоли API. cheers – Aks4125

+0

Благодарим вас за ответ. Но поскольку я уже упоминал, что ключ SHA1 версии выпуска находится в консоли api. – silwalprabin

ответ

1

Очевидно, что в первую очередь проверьте правильность выбранной версии ключа sha1. Но проблема здесь была иной. Я использую новые сервисы google play (i.e.compile 'com.google.android.gms: play-services: 8.4.0'). И проблема может быть решена путем изменения объекта GoogleSignInOption. Вместо:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
        .requestEmail() 
     .requestIdToken("YOUR_WEB_API_ID.apps.googleusercontent.com") 
        .build(); 

Я использую:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
       .requestScopes(new Scope(Scopes.PLUS_LOGIN)) 
       .requestScopes(new Scope(Scopes.PLUS_ME)) 
       .requestEmail() 
       .build(); 

Это решает ошибку возвращающегося StatusCode = INTERNAL_ERROR. Тогда этот ГСО объект может быть использован для создания GoogleApiClient, как показано ниже:

mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .enableAutoManage(this, this) 
       .addApi(Auth.GOOGLE_SIGN_IN_API,gso) 
       // .addApi(Plus.API, null) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       // .addScope(Plus.SCOPE_PLUS_LOGIN) 
       .build();