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 ответа
Это уже поздно, но для тех, кому это может быть полезно для:
- Переехать
loc.buildGoogleApiClient();
к методу onCreate. - Переехать
loc.createLocationRequest();
к методу onConnected.
Вы не должны вызывать loc.createLocationRequest(); сразу после вызова loc.buildGoogleApiClient(); Вместо этого вы вызываете loc.createLocationRequest () в onConected () ApiCLient. loc.createLocationRequest() требует, чтобы GoogleApiClient был подключен к моменту его вызова.
В связи с этим вам следует вызывать любой API, которому нужен APiCLient, подключенный в onConnected (). Таким образом, вы избегаете исключений ApiClient Connect во время их использования.