I implement GoogleApiClient as bellow:
 mGoogleApiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(this, 0 /* clientId */, this)
                .addApi(LocationServices.API)
                .addApi(Places.GEO_DATA_API)
                .addConnectionCallbacks(this)
                .build();
But in onConnected method I check mGoogleApiClient => value null.
In this case I try to re-build googleApiClient but I get error: 
  java.lang.IllegalStateException: Already managing a GoogleApiClient with id 0
Please help me understand why mGoogleApiClient is sometimes NULL althought it's connected :|. (Notes. I checked all source code, I never set GoogleApiClient to NULL).
Thanks!
Update
My problem now solved after I try use latest version of play-service.
Thanks everybody for help.
I had the same problem. All I did to solve it is remove .enableAutoManage(this, 0 /* clientId */, this) because it just doesn't work properly from what I assumed. Then, override these methods in your activity:
@Override
public void onStart() {
    super.onStart();
    if (mGoogleApiClient != null) {
        mGoogleApiClient.connect();
    }
}
@Override
public void onStop() {
    if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) {
        mGoogleApiClient.disconnect();
    }
    super.onStop();
}
Technically, that is what .enableAutoManage(this, 0 /* clientId */, this) was supposed to do, except that now, everything works as it should.
Documentation says: At any given time, only one auto-managed client is allowed per id. To reuse an id you must first call stopAutoManage(FragmentActivity) on the previous client.
What I personally do is making a call to bellow method before I leave the activity, in which I am using the Google Api Client.
private void stopAutoManage() {
    if (mGoogleApiClient != null)
        mGoogleApiClient.stopAutoManage(mActivity);
}
                        I think you'd better watch this reference.
reference page of "public GoogleApiClient.Builder enableAutoManage"
In this page shows that, through IllegalStateException if clientId is already being auto-managed. So, check on your code with
                .enableAutoManage(this, 0 /* clientId */, this)
I think if exception on your code, it could return zero as not completed.
If u are facing this problem when u try to reinitialize mGoogleApiClient, then just remove
.enableAutoManage(this, 0 /* clientId */, this)
Use
mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(LocationServices.API)
            .addApi(Places.GEO_DATA_API)
            .addConnectionCallbacks(this)
            .build();
and it will work fine
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With