【发布时间】:2016-05-02 21:20:05
【问题描述】:
是否有人已经遇到过这个问题: - 我正在初始化一个 LocationClient,使用 ConnectionCallbacks 等等...... - 然后,我在上面调用“connect()”。 - 在我的“onConnected”方法中,我调用了 myLocationClient.getLastLocation(),这会使应用程序在某些人的设备上崩溃,但有例外:
"致命异常:java.lang.IllegalStateException 未连接。调用 connect() 并等待 onConnected() 被调用。”
有什么想法吗?
以下是部分代码:
myLocationClient = new LocationClient(this, new ConnectionCallbacks() {
@Override
public void onDisconnected() {
//Do some stuff here
}
@Override
public void onConnected(Bundle arg0) {
if(myLocationClient.getLastLocation() != null) {
//Do some other stuff here
}
}
}, new OnConnectionFailedListener() {
@Override
public void onConnectionFailed(ConnectionResult arg0) {
//Do other stuff here
}
});
myLocationClient.connect();
应用程序在“onConnected”方法的第一行崩溃。
对于想要堆栈的人来说,它是:
java.lang.IllegalStateException: Not connected. Call connect() and wait for onConnected() to be called.
at com.google.android.gms.internal.k.B()
at com.google.android.gms.internal.bh.a()
at com.google.android.gms.internal.bh$c.B()
at com.google.android.gms.internal.bg.getLastLocation()
at com.google.android.gms.internal.bh.getLastLocation()
at com.google.android.gms.location.LocationClient.getLastLocation()
at com.myAppPackage.onConnected(AroundMeActivity.java:321)
at com.google.android.gms.internal.k.y()
at com.google.android.gms.internal.k$f.a()
at com.google.android.gms.internal.k$f.a()
at com.google.android.gms.internal.k$b.D()
at com.google.android.gms.internal.k$a.handleMessage()
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
at dalvik.system.NativeStart.main(NativeStart.java)
【问题讨论】:
-
这是因为您应该检查 locationClient 是否已连接。但我不知道它是否没有连接,如何再次检查并做我们的事情!你的问题解决了吗?
-
不,我没有解决它。由于这些东西,我仍然会遇到一些崩溃。问题是:如果位置客户端尚未连接,我如何获得“OnConnected”回调?
标签: android google-maps google-play-services