Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 登录到Google api客户端时出现非法状态异常_Android_Google Api_Google Fit - Fatal编程技术网

Android 登录到Google api客户端时出现非法状态异常

Android 登录到Google api客户端时出现非法状态异常,android,google-api,google-fit,Android,Google Api,Google Fit,我得到以下错误: java.lang.IllegalStateException: Cannot use sign-in mode: SIGN_IN_MODE_OPTIONAL. Mode was already set to SIGN_IN_MODE_NONE 这是什么意思?如何预防 其他类似问题中的建议是: mGoogleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL); 但我一直在用这个 这是onActivityRes

我得到以下错误:

java.lang.IllegalStateException: Cannot use sign-in mode: SIGN_IN_MODE_OPTIONAL. Mode was already set to SIGN_IN_MODE_NONE 
这是什么意思?如何预防

其他类似问题中的建议是:

 mGoogleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL);
但我一直在用这个

这是onActivityResult

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_OAUTH) {
        authInProgress = false;
        if (resultCode == RESULT_OK) {
            progressDialog.dismiss();
            if (!googleApiClient.isConnecting() && !googleApiClient.isConnected()) {
                googleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL);
            } else {
                onConnected(null);
            }
        } else if (resultCode == RESULT_CANCELED) {
            progressDialog.dismiss();
            startApiClientConnect();
        }
    } else {
        progressDialog.dismiss();
        startApiClientConnect();
    }
}
初始连接尝试后,如果未成功,则会在
onActivityResult
中重新尝试
GoogleAppClient.connect
。我相信这是重新尝试造成的问题。初始连接失败后/某些用户操作使符号\u处于\u模式\u无


如何处理此问题?

似乎不允许您多次向connect(int)方法提供登录模式。“通过不同的模式对此方法进行多次调用是错误的。一旦选择了一种模式,以后所有的连接调用都必须使用相同的模式。”因此,可能是您使用不同的参数调用了
connect()
SIGN\u IN_MODE\u NONE
似乎不是参数的选项,因此我认为您在一种情况下调用了
connect()
,在另一种情况下调用了
connect(int)
(使用
SIGN\u IN_MODE\u OPTIONAL
)。检查一下,看看你是否能让它们保持一致


另外,我认为GoogleAppClient的回调是
onConnected(Bundle)
onConnectionFailed(ConnectionResult)

似乎不允许多次向connect(int)方法提供登录模式。“通过不同的模式对此方法进行多次调用是错误的。一旦选择了一种模式,以后所有的连接调用都必须使用相同的模式。”因此,可能是您使用不同的参数调用了
connect()
SIGN\u IN_MODE\u NONE
似乎不是参数的选项,因此我认为您在一种情况下调用了
connect()
,在另一种情况下调用了
connect(int)
(使用
SIGN\u IN_MODE\u OPTIONAL
)。检查一下,看看你是否能让它们保持一致


此外,我认为对GoogleAppClient的回调是
onConnected(Bundle)
onConnectionFailed(ConnectionResult)

似乎是一个合理的原因。但是这里有一个关于
公共void connect(int-signimode)
的语句。根据文档:通过不同模式多次调用此方法是错误的。一旦选择了一种模式,以后的所有连接呼叫都必须使用相同的模式。那么模式是如何变为“无模式下的签名”的呢?我想这是因为您在
公共无效连接(int)之前调用了
public void connect()
,因为
无模式下的签名不是一个参数选项。查找并选择无模式或可选模式。我猜你提到的另一个帖子是。我不确定您是否试图像他一样登录,但对于我的登录,我将其放入我的
onConnectionFailedListener
result.startResolutionForResult(main activity.this,REQUEST\u login)弹出登录对话框是的,我指的是那个问题。我确实有
result.startResolutionForResult
,但仍收到此错误。不幸的是,这一错误在我这边永远无法重现,但从客户发送的崩溃报告中可以看出。我已尝试重新注册回调,然后再次
GoogleAppClient.connect(GoogleAppClient.SIGN\u IN\u MODE\u可选)
。我还没有收到任何撞车报告,但时间还早。无法确认这是如何防止问题的。顺便说一句,我总是使用
GoogleAppClient.connect(GoogleAppClient.SIGN\u IN\u MODE\u可选)贯穿整个代码。我还注册了
OnConnectionFailedListener
ConnectionCallbacks
。所以这不再是问题了?似乎是个合理的原因。但是这里有一个关于
公共void connect(int-signimode)
的语句。根据文档:通过不同模式多次调用此方法是错误的。一旦选择了一种模式,以后的所有连接呼叫都必须使用相同的模式。那么模式是如何变为“无模式下的签名”的呢?我想这是因为您在
公共无效连接(int)之前调用了
public void connect()
,因为
无模式下的签名不是一个参数选项。查找并选择无模式或可选模式。我猜你提到的另一个帖子是。我不确定您是否试图像他一样登录,但对于我的登录,我将其放入我的
onConnectionFailedListener
result.startResolutionForResult(main activity.this,REQUEST\u login)弹出登录对话框是的,我指的是那个问题。我确实有
result.startResolutionForResult
,但仍收到此错误。不幸的是,这一错误在我这边永远无法重现,但从客户发送的崩溃报告中可以看出。我已尝试重新注册回调,然后再次
GoogleAppClient.connect(GoogleAppClient.SIGN\u IN\u MODE\u可选)
。我还没有收到任何撞车报告,但时间还早。无法确认这是如何防止问题的。顺便说一句,我总是使用
GoogleAppClient.connect(GoogleAppClient.SIGN\u IN\u MODE\u可选)贯穿整个代码。我还注册了
OnConnectionFailedListener
ConnectionCallbacks
,所以这不再是问题了?