错误:状态{statusCode = DEVELOPER_ERROR,resolution = null}

Gur*_*ngh 87 android google-plus

我正在使用gplus登录,并且当我在onActivityResult时收到此错误....

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
    client.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 0) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {

            GoogleSignInAccount acct = result.getSignInAccount();
//                Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());

            mEmail = acct.getEmail();
            String mFullName = acct.getDisplayName();
            String mGoogleplusId = acct.getId();


            SocialUser user = new SocialUser();
            user.setType("googleplus");

            user.setEmail(mEmail);
            user.setFullname(mFullName);
            user.setId(mGoogleplusId + "");
            loginParams.put("email_id", mEmail);
            loginParams.put("googlePlusId", mGoogleplusId);
            loginParams.put("full_name", mFullName);
            loginParams.put("registrationType", "googleplus");
            SignUpService(user);


        } else {
            Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我要求按钮点击gplus登录.在按下代码后执行代码....

 GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)

            .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
            .build();


    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, 0);
Run Code Online (Sandbox Code Playgroud)

而且我发现了这个错误......

Status{statusCode=DEVELOPER_ERROR, resolution=null}
Run Code Online (Sandbox Code Playgroud)

在这条线上....

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
Run Code Online (Sandbox Code Playgroud)

请建议解决方案.

Sol*_*ety 187

您需要将SHA1密钥添加到firebase控制台配置.你可以这样做:

Firebase控制台(https://console.firebase.google.com) - >您的项目 - >配置 - >滚动到

在此输入图像描述

您可以在Android Studio中找到运行"登录报告"的SHA1密钥:

在此输入图像描述

然后,查看"运行选项卡"并单击按钮:

在此输入图像描述

我认为这是更简单的方法.希望这有帮助.

  • 这里有更清晰的解释:/sf/answers/2343568531/ (3认同)

小智 28

您可能使用生产令牌的SHA1创建了配置文件,使用androiddebugkey别名来收集与应用程序调试版本对应的SHA1并将配置文件复制到"app"目录,您应该有两个配置文件(一个用于调试目的,另一个用于生产环境).

基于https://developers.google.com/identity/sign-in/android/start中发布的演练

  • 当我切换到Web客户端凭据而不是针对OAuth 2.0客户端ID的Android客户端时,我的错误已得到修复.这句话仍然让我感到困惑,因为我正在开发一个与网络服务器对话的Android应用......但错误至少消失了 (5认同)

Udi*_*ahi 10

我有同样的问题,我通过这些步骤使它工作:

1.将DEBUG_KEYSTORE SHA1指纹添加到firebase项目.使用以下命令(MAC/LINUX)

  keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore  
Run Code Online (Sandbox Code Playgroud)

2.Now生成项目的签名apk.该过程包括为应用程序的发布版本生成密钥库.

  Copy the path of the newly generated .jks file.
Run Code Online (Sandbox Code Playgroud)

3.现在使用以下命令生成RELEASE_KEYSTORE SHA1指纹

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME
Run Code Online (Sandbox Code Playgroud)

4.从输出中复制新的SHA1,并将其作为另一个SHA1指纹添加到firebase应用程序控制台中.

现在你很高兴!----希望!它有助于.


412*_*157 9

在此输入图像描述

我修复它的方法是拿起与突出显示的文本对应的键.由于在Firebase的文档页面中使用"服务器"一词令人困惑,我正在接受Server key.这就是问题的原因.

你可以在这里找到钥匙.


Ren*_*ade 5

我遇到了同样的问题,我解决的问题是我的gradle文件中的applicationId与清单文件中的包名不同.我曾经使用applicationId来创建json文件.我不得不将我的包名更改为我的applicationId,并为我修复了它.


tob*_*bik 5

这是一个老问题,但最近我一直遇到错误 10 (DEVELOPER_ERROR),因为我使用的是我在 google 开发者控制台中创建的 Android 客户端 ID。

对我来说,解决方案是仅在 google 开发者控制台中使用 Android 凭据来指示我的 apk 的 SHA 密钥,并在我的 cordova 应用程序中使用来自 google 开发者控制台的 Web 应用程序的客户端 ID (!) 凭据。

配置.xml:

<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
    <variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
    <variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>
Run Code Online (Sandbox Code Playgroud)

代码:

window.plugins.googleplus.login(
    {
       'webClientId': '[web-application-client-id].apps.googleusercontent.com'
    }, 
    ...
Run Code Online (Sandbox Code Playgroud)

我不使用火力基地。