GoogleApiClient еще не подключен, исключение

Приложение, над которым я работаю, иногда работает правильно, но иногда это выдает мне эту ошибку

Неустранимое исключение: java.lang.RuntimeException: Невозможно приостановить действие {com.example.dell.locationapi/com.example.dell.locationapi.MainActivity}: java.lang.IllegalStateException: GoogleApiClient еще не подключен.

И иногда эта ошибка:

java.lang.IllegalStateException: GoogleApiClient еще не подключен.

хотя onConnected() функция называется. Я перенес призвание buildGoogleApiClient() в началеonCreate() вот мой код:

protected synchronized void buildGoogleApiClient() {
        mGoogleApiClient = new GoogleApiClient.Builder(context)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API).build();
 }

вызывая методы в onCreate():

    loc = new MyLocation(MainActivity.this);
    if (loc.checkPlayServices()) {
        loc.buildGoogleApiClient();
        loc.createLocationRequest();
    }

но иногда он дает одну и ту же ошибку, есть идеи, почему это происходит?!

2 ответа

Это уже поздно, но для тех, кому это может быть полезно для:

  1. Переехать loc.buildGoogleApiClient(); к методу onCreate.
  2. Переехать loc.createLocationRequest(); к методу onConnected.

Вы не должны вызывать loc.createLocationRequest(); сразу после вызова loc.buildGoogleApiClient(); Вместо этого вы вызываете loc.createLocationRequest () в onConected () ApiCLient. loc.createLocationRequest() требует, чтобы GoogleApiClient был подключен к моменту его вызова.

В связи с этим вам следует вызывать любой API, которому нужен APiCLient, подключенный в onConnected (). Таким образом, вы избегаете исключений ApiClient Connect во время их использования.

Другие вопросы по тегам