2017-02-06 19 views
0

Я переработал имя своего приложения. Мне нужно войти в мою учетную запись google. Но это не удается даже после следующих шагов.Google Auth signin RESULT_CANCELED после рефакторинга имени пакета

  1. Я переработал имя пакета своего приложения.
  2. Я изменил идентификатор приложения в файле Gradle
  3. Я скачал обновленный Google-сервисы JSON
  4. Я изменил имя в конфигурационном файле.

Я нахожусь на своем пути, пытаясь найти решение этой проблемы. Код статуса ошибки 4.

public GoogleApiClient googleFitAuthBuild(Activity activity, GoogleApiClient.ConnectionCallbacks connectionCallbacks, GoogleApiClient.OnConnectionFailedListener failedListener) { 
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestEmail() 
      .requestId() 
      .requestProfile() 
      .requestScopes(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE), new Scope(Scopes.FITNESS_BODY_READ_WRITE), new Scope(Scopes.PROFILE), new Scope(Scopes.FITNESS_NUTRITION_READ_WRITE)) 
      .build(); 

    return new GoogleApiClient.Builder(activity) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .addConnectionCallbacks(connectionCallbacks) 
      .addOnConnectionFailedListener(failedListener) 
      .addApi(Fitness.HISTORY_API) 
      .addApi(Fitness.SESSIONS_API) 
      .addApi(Fitness.RECORDING_API) 
      .addApi(Fitness.SENSORS_API) 
      .enableAutoManage(this, 0, failedListener) 
      .build(); 
} 


    public void googleApiConnect(final Activity activity, final GoogleApiClient mGoogleApiClient) { 
    mGoogleApiClient.registerConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { 
     @Override 
     public void onConnected(Bundle bundle) { 
      S.L("Google API connected"); 
      Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
      activity.startActivityForResult(signInIntent, S.REQUEST_OAUTH); 
     } 

     @Override 
     public void onConnectionSuspended(int i) { 
      S.L("FITCONNECT suspended i=" + i); 
     } 
    }); 
    mGoogleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == S.REQUEST_OAUTH) { 
     if (resultCode == RESULT_OK) { 

      GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
      GoogleSignInAccount account = result.getSignInAccount(); 

     } else if (resultCode == RESULT_CANCELED) { 
      S.L("RESULT_CANCELED"); 
     } 
    } else { 
     S.L("requestCode NOT S.REQUEST_OAUTH"); 
    } 
} 

Выход RESULT_CANCELED. этот код работал до того, как я переработал имя пакета приложения.

+0

Вы используете ключи API или учетные данные из консоли разработчика Google, например SHA1 Key, который использует старое имя пакета? – noogui

+0

Да ... Мне удалось решить вопрос – suku

+0

, в чем была ваша ошибка и разрешение? – noogui

ответ

0

Проблема была в том, что имя реорганизованного пакета принадлежит моему опубликованному приложению. (Я хочу опубликовать новую версию приложения). Но когда я тестировал отладочную версию, он не смог найти хранилище ключей, связанное с опубликованным приложением с именем пакета. Я подозревал это, и я опубликовал новую версию. В этом опубликованном приложении нет упомянутой проблемы, поскольку он подписан с тем же хранилищем ключей.