强制关闭GoogleApiClient.connect()

时间:2015-02-04 03:36:57

标签: android google-play-services google-play-games google-api-client google-plus-one

我很无能为什么我的应用程序在点击 g + singin按钮强制关闭。我刚刚点击了 GoogleApiClient.connect()方法,实施了一个g +登录按钮。但如果我评论 GoogleApiClient.connect()方法,应用程序不会强行关闭。实际上如果连接失败,应该调用 onConnectionFailed()方法,但强制关闭。 我把错误信息作为图像放在底部........

package com.playservices.murali.playservices;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.games.Games;
import com.google.android.gms.plus.Plus;
import com.google.example.games.basegameutils.BaseGameUtils;


public class MainActivity extends ActionBarActivity implements
    View.OnClickListener,
    GoogleApiClient.ConnectionCallbacks,
    GoogleApiClient.OnConnectionFailedListener {
private static final String TAG = "asdf";
private GoogleApiClient mGoogleApiClient;
private boolean mResolvingConnectionFailure = false;
private boolean mAutoStartSignInFlow = true;
private boolean mSignInClicked = false;

private static int RC_SIGN_IN = 9001;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViewById(R.id.sign_in_button).setOnClickListener(this);
    findViewById(R.id.sign_out_button).setOnClickListener(this);
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN)
            .addApi(Games.API).addScope(Games.SCOPE_GAMES)
            .build();
  }

@Override
protected void onStart()
{

}

@Override
protected void onStop()
{

}
@Override
public void onConnected(Bundle bundle) {
}

@Override
public void onConnectionSuspended(int i) {

}

@Override
public void onConnectionFailed(ConnectionResult connectionResult) {

}

@Override
public void onClick(View view) {
    if (view.getId() == R.id.sign_in_button) {
        // start the asynchronous sign in flow
        mSignInClicked = true;
        mGoogleApiClient.connect();
    }
    else if (view.getId() == R.id.sign_out_button) {
        // sign out.
        mSignInClicked = false;
        Games.signOut(mGoogleApiClient);

        // show sign-in button, hide the sign-out button
        findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
        findViewById(R.id.sign_out_button).setVisibility(View.GONE);
    }
}

}

this is error message shown to me

2 个答案:

答案 0 :(得分:1)

尝试将我的代码移植到你的代码http://pastebin.com/gAspppbh中,你几乎遗漏了一些东西!

答案 1 :(得分:0)

某些设备未提供GoogleApiClient来获取位置。我已经面对这个问题。所以我可以将GoogleApiClient更改为FusedLocationProviderClient。我已经解决了我的问题。有关此问题的更多信息,请访问下面的链接

Android GPS, Location Manager