Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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 Plus登录时出现异常_Android_Google Plus_Google Login - Fatal编程技术网

在Android中使用Google Plus登录时出现异常

在Android中使用Google Plus登录时出现异常,android,google-plus,google-login,Android,Google Plus,Google Login,我正在尝试在Android中使用Google Plus登录。当我按下Google Plus按钮时,它会给我需要选择的个人资料。选择google plus帐户后,将调用OnConnectiond方法。然后我尝试获取用户数据。但我得到的例外是 Error requesting visible circles: Status{statusCode=NETWORK_ERROR, resolution=null} 以下是我编写的完整代码: public class LoginActivity

我正在尝试在Android中使用Google Plus登录。当我按下Google Plus按钮时,它会给我需要选择的个人资料。选择google plus帐户后,将调用OnConnectiond方法。然后我尝试获取用户数据。但我得到的例外是

Error requesting visible circles: Status{statusCode=NETWORK_ERROR, resolution=null}
以下是我编写的完整代码:

     public class LoginActivity extends AppCompatActivity implements View.OnClickListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, ResultCallback<People.LoadPeopleResult> 
 {

    private GoogleApiClient mGoogleApiClient;

    private ConnectionResult mConnectionResult;

    private boolean mIntentInProgress;

    private boolean mSignInClicked;

    private static final int REQUEST_RESOLVE_ERROR = 1001;

     @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_login);

        mBtnGPlus = (SignInButton)findViewById(R.id.btn_sign_in);
        mBtnGPlus.setOnClickListener(this);
        mBtnGPlus.setSize(SignInButton.SIZE_STANDARD);

        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(Plus.API, Plus.PlusOptions.builder().build())
                .addScope(Plus.SCOPE_PLUS_PROFILE)
                .addScope(Plus.SCOPE_PLUS_LOGIN)
                .build();

    }

     protected void onStart() {
        super.onStart();
        mGoogleApiClient.connect();
    }


    @Override
    public void onClick(View v)
    {
        if(v == mBtnGPlus)
        {
            onGPlusLogin();
        }
    }


    private void onGPlusLogin()
    {
        Logger.d("button clicked");
        if (!mGoogleApiClient.isConnecting()) {
            mSignInClicked = true;
            Logger.d("connecting gplus");
            resolveSignInError();
        }
    }

     private void resolveSignInError() {
        Logger.d("resolveSignInError");
        if (mConnectionResult.hasResolution())
        {
            Logger.d("inside hasResolution");
            try {
                mIntentInProgress = true;
                mConnectionResult.startResolutionForResult(this, RC_SIGN_IN);
            } catch (IntentSender.SendIntentException e)
            {
                Logger.d("exception came  "+e.getMessage());
                mIntentInProgress = false;
                mGoogleApiClient.connect();
            }
        }
    }

    @Override
    public void onResult(People.LoadPeopleResult peopleData) {

        Logger.d("status code onResult " +peopleData.getStatus().getStatusCode());
        if (peopleData.getStatus().getStatusCode() == CommonStatusCodes.SUCCESS) {
            PersonBuffer personBuffer = peopleData.getPersonBuffer();
            try {
                int count = personBuffer.getCount();
                for (int i = 0; i < count; i++) {
                    Logger.d("Display name: " + personBuffer.get(i).getDisplayName());
                }
            } finally {
                personBuffer.release();
            }
        } else {
            Logger.d("Error requesting visible circles: " + peopleData.getStatus());
        }
    }

    @Override
    public void onConnectionFailed(ConnectionResult result) {
       if (!mIntentInProgress) {
            // Store the ConnectionResult for later usage
            mConnectionResult = result;
            if (mSignInClicked) {
                // The user has already clicked 'sign-in' so we attempt to
                // resolve all
                // errors until the user is signed in, or they cancel.
                resolveSignInError();
            }
        }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Logger.d("OnActivity result::::   " + resultCode);
        if (requestCode == RC_SIGN_IN)
        {
            Logger.d("OnActivity result 5555::::   " + resultCode);
            if (resultCode != RESULT_OK)
            {
                Logger.d("OnActivity result 666666   " + resultCode);
                mSignInClicked = false;
            }

            mIntentInProgress = false;

            if (!mGoogleApiClient.isConnecting()) {
                Logger.d("OnActivity result::: 777777   " + resultCode);
                mGoogleApiClient.connect();
            }
        }
    }

    @Override
    public void onConnectionSuspended(int arg0) {
        Logger.d("onConnectionSuspended::::   ");
        mGoogleApiClient.connect();
    }


    @Override
    public void onConnected(Bundle arg0) {
        mSignInClicked = false;
        Logger.d("OnConnected::::   ");
        Plus.PeopleApi.loadVisible(mGoogleApiClient, null)
                .setResultCallback(this);
        Logger.d("OnConnected::::   "+(Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) == null));
        if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
            Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
            String personName = currentPerson.getDisplayName();
            String personGooglePlusProfile = currentPerson.getUrl();
        }


        }
有人能帮我吗


-Arindam.

编辑您的问题,发布清单、权限、类和任何需要的日志relevant@Bonatti已添加清单并完成活动代码。请检查您是否可以提供帮助。任何人遇到问题都请提供帮助。Google Console中的程序包名称是什么?Google Console中的程序包名称是:com.app.dhinchakwale。在清单中也是这样:清单xmlns:android=package=com.app.dhinchakwale>
<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.intent.action.CALL_PRIVILEGED" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />

<application
        android:name=".util.DBOpenHelper"
        android:allowBackup="true"
        android:icon="@drawable/dicon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity
            android:name=".ui.Splashscreen"
            android:theme="@style/AppTheme.Dark" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ui.LoginActivity"
            android:theme="@style/AppTheme.Dark" >
        </activity>
        <activity
            android:name=".ui.RegistrationActivity"
            android:label="@string/title_activity_registration"
            android:theme="@style/AppTheme.Dark" >
        </activity>
        <activity
            android:name=".ui.HomeScreen"
            android:label="@string/title_activity_home_screen"
            android:theme="@style/AppTheme.Inside" >
        </activity>
        </activity>
    </application>
12-10 21:12:39.764 2035-2138/? E/MDM: [151] b.run: Couldn't connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
12-10 21:12:49.736 18914-18948/? E/Surface: getSlotFromBufferLocked: unknown buffer: 0xaec2e550
12-10 21:12:50.911 18724-18724/? E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-10 21:12:50.911 18724-18724/? E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-10 21:12:51.988 1387-3249/? E/Volley: [130] BasicNetwork.performRequest: Unexpected response code 401 for https://www.googleapis.com/plus/v1/people/me/people/visible?maxResults=100&orderBy=alphabetical
12-10 21:12:53.036 1387-3247/? E/Volley: [128] BasicNetwork.performRequest: Unexpected response code 401 for https://www.googleapis.com/plus/v1/people/me/people/visible?maxResults=100&orderBy=alphabetical