2015-11-24 125 views
4

我的工作中的應用,工作正常,但有時一些其他時候,它給了我這個錯誤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(); 
    } 

但它一直有時給予同樣的錯誤,任何想法,爲什麼這發生?!

+0

你能設法通過這個嗎? – cgr

回答

0

你不應該調用loc.createLocationRequest();在調用loc.buildGoogleApiClient()後立即生效;相反,您可以在ApiCLient的onConected()中調用loc.createLocationRequest()。 loc.createLocationRequest()需要GoogleApiClient在被調用時連接。

對於這個問題,您應該調用任何需要在onConnected()中連接APiCLient的API。這樣,您可以在使用它們時避免ApiClient連接異常。

+0

反對票,不錯。我想聽聽你答案中出了什麼問題,所以我可以糾正它,甚至人們會這樣做,所以它會誤導。如果你不能投票。 – cgr

0

這是遲到但不管是誰,可能是有用的:

  1. 移動loc.buildGoogleApiClient();到onCreate方法。
  2. loc.createLocationRequest();移動到onConnected方法。
相關問題