android - Google 登录错误 : Status Code: SIGN_IN_REQUIRED when signing in with Google on android

标签 android google-api google-play google-plus

每次我尝试使用 Google API 登录时,都会收到以下错误。我的 list 具有适当的权限,我确实相应地创建了我的凭据。所以我不知道问题是什么。同意屏幕也不显示。

com.omer.notetoself D/NTS:﹕ ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{3678d5c: android.os.BinderProxy@19bcbe30}, message=null}

  package com.omer.notetoself;

    import android.app.Activity;
    import android.content.Intent;
    import android.content.IntentSender;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;

    import com.google.android.gms.common.ConnectionResult;
    import com.google.android.gms.common.Scopes;
    import com.google.android.gms.common.api.GoogleApiClient;
    import com.google.android.gms.common.api.Scope;
    import com.google.android.gms.plus.Plus;


     `public class Activity_Login extends Activity implements View.OnClickListener,GoogleApiClient.ConnectionCallbacks,
        GoogleApiClient.OnConnectionFailedListener{` 


    private static final int RC_SIGN_IN = 0;
    private GoogleApiClient mGoogleApiClient;
    /* Is there a ConnectionResult resolution in progress? */
    private boolean mIsResolving = false;

    /* Should we automatically resolve ConnectionResults when possible? */
    private boolean mShouldResolve = false;


    EditText editText_userName;
    EditText editText_password;

    Button button_facebook_login;
    Button button_google_login;
    Button button_login;
    Button button_signUp;

    String userName;
    String password;

    @Override
    protected void onStop() {
        super.onStop();
        mGoogleApiClient.disconnect();
    }

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

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        editText_userName = (EditText)findViewById(R.id.editText_username);
        editText_password = (EditText)findViewById(R.id.editText_password);
        button_login = (Button)findViewById(R.id.button_login);
        button_facebook_login = (Button)findViewById(R.id.button_facebook);
        button_google_login = (Button)findViewById(R.id.button_google);

        button_signUp = (Button)findViewById(R.id.button_signup);
        button_login.setOnClickListener(this);
        button_signUp.setOnClickListener(this);
        button_facebook_login.setOnClickListener(this);
        button_google_login.setOnClickListener(this);


        //GOOGLE+ API

        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(Plus.API)
                .addScope(new Scope(Scopes.PROFILE))
                .addScope(new Scope(Scopes.EMAIL))
                .build();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_activity_login, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onClick(View v) {
        switch(v.getId()){
            case R.id.button_login: //AUTHENTICATE PARSE
                userName = editText_userName.getText().toString().trim();
                password = editText_password.getText().toString().trim();
                AppUtilities.parseLogin(this, userName, password);
                break;
            case R.id.button_signup: //LAUNCH SIGN UP ACTIVITY
                Intent intent = new Intent(
                        Activity_Login.this,
                        Activity_SignUp.class);
                startActivity(intent);
                break;
            case R.id.button_facebook:

                AppUtilities.facebookLogin(this);
                break;
            case R.id.button_google:
                initGoogle();



                break;

        }

    }

    public void initGoogle(){
        mGoogleApiClient.connect();
    }

    @Override
    public void onConnected(Bundle bundle) {
        String email = Plus.AccountApi.getAccountName(mGoogleApiClient);
        AppUtilities.googleLogin(this,email);
    }

    @Override
    public void onConnectionSuspended(int i) {

    }

    @Override
    public void onConnectionFailed(ConnectionResult connectionResult) {
        AppUtilities.log(connectionResult.toString());


        if (!mIsResolving && mShouldResolve) {
            if (connectionResult.hasResolution()) {
                try {
                    connectionResult.startResolutionForResult(this, RC_SIGN_IN);
                    mIsResolving = true;
                } catch (IntentSender.SendIntentException e) {
                    Log.e(AppUtilities.TAG, "Could not resolve ConnectionResult.", e);
                    mIsResolving = false;
                    mGoogleApiClient.connect();
                }
            } else {
                // Could not resolve the connection result, show the user an
                // error dialog.
                //showErrorDialog(connectionResult);
            }
        } else {
            // Show the signed-out UI
            //showSignedOutUI();
        }
    }
}

最佳答案

确保您的应用在 Google 开发者控制台中的 SHA-1 签名证书指纹属于用于签署您正在测试的 APK 的同一 key 。

默认情况下,在组装调试版本时,Android Studio 使用自己的调试 key 。您可以通过右键单击应用程序并选择“打开模块设置”来更改它。转到“签名”选项卡并配置您在开发控制台中提到的相同 key 。之后导航到“构建类型”选项卡并选择您的签名配置。

关于android - Google 登录错误 : Status Code: SIGN_IN_REQUIRED when signing in with Google on android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33026544/

相关文章:

java - 为什么我无法在 Play 商店中打开我的应用程序?

android - 谷歌应用开发者 : Change Default Language of App

安卓市场不在手机上更新

java - 列出 Android 中所有可用的通知铃声

javascript - 在固定大小的列中加载 html 正文内容

css - Google 字体无法在 Windows 浏览器中加载,但会在 Mac 浏览器中加载

python-3.x - 无法使用 .json key 文件创建 Pub/Sub Publisher 客户端

java - 丢失 debug.keystore,我可以更新 Android 应用程序或检索应用程序数据吗?

Android弹出列表对话框

ios - 如何从 iOS 连接到本地 Google App Engine 端点?