Android Google Plus登录问题。 handleSignInResult返回False

时间:2016-01-26 07:05:07

标签: android google-api google-plus google-signin

我在整合Google+ Signin功能时遇到了一些问题。到目前为止,我已经集成了所有必要的G +登录API模块和代码,这些代码运行良好,生成并在使用debug.keystore的keytool生成SHA1之后将google-services.json置于/ app中并将SHA1粘贴到google云端开发人员控制台,但现在只有一个小故障我面临很多天/周,即当我尝试进行设备调试时,每当我点击“G +登录”时,我在LogCat中收到以下错误:

  

E / GMPM:getGoogleAppId失败,状态为:10

     

E / GMPM:无法上传。应用测量禁用。

     

D / SignInActivity:handleSignInResult:false

此handleSignInResult一直返回False,无法登录以进一步获取数据。如果你们中的任何人遇到过这种情况,请帮助我。这个小障碍非常令人抓狂。

谢谢大家。

8 个答案:

答案 0 :(得分:7)

您使用的是Plus.API还是Auth.GOOGLE_SIGN_IN_API?后者是最新改版的。看看这里: https://developers.google.com/identity/sign-in/android/sign-in

如果您使用的是Auth.GOOGLE_SIGN_IN_API:

在onActivityResult中,使用类似于下面的代码,您可以获得一个状态代码,该代码由GoogleSignInStatusCodes定义:https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInStatusCodes

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

    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
    if (requestCode == RC_SIGN_IN) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        int statusCode = result.getStatus().getStatusCode();
    }
}

最常见的问题是错过了正确的OAuth2客户端注册。 (不幸的是,现在,状态代码是INTERNAL_ERROR 8,这没有帮助。)例如看一下这个帖子: Occured an INTERNAL_ERROR when requestEmail from GoogleSignInOptions Android

答案 1 :(得分:4)

正如Sudhanshu Gaur在this post中指出的那样,首先尝试使用您用于create your json configuration file的相同密钥生成已签名的apk。然后将其安装在您的设备上,看看它是否有效。原因是当您单击“运行”时,Android Studio不会对您的apk进行签名 我遇到了完全相同的问题,这个解决方案对我来说很好。

答案 2 :(得分:4)

请确保您已在SHA-1文件创建中应用了google-services.json调试密钥。

答案 3 :(得分:2)

如果你在firebase中添加所有SHA-1指纹仍然会出现错误。然后(我遇到了这个问题。在这个步骤之后它已经解决了。)尝试这个步骤:

1.转到Google Console API credentials Page。

2.单击左侧选项卡中的凭据

3.已经存在两个默认的Android和Web OAuth客户端ID。您必须创建一个Android客户端和一个 Web 2.0客户端

4.转到 Firebase 。在项目设置中,下载google-services.json并粘贴到app文件夹中。

(一切都很好,但你仍然无法登录谷歌意味着可能OAuth问题。所以一定要创建Android和Web客户端ID。最后在凭证页面中你有2个Android客户端和两个Web客户端ID。)

答案 4 :(得分:1)

您需要在应用上提供签名证书的SHA-1哈希

示例:

注册SHA-1:

CF:4A:A1:0A:BC:84:F2:31:28:C3:BA:A7:A3:A2:36:10:5F:1D:3E:CB 并下载您创建的配置文件..并替换为 * yourproject /应用/谷歌service.json

//获取google-service.json文件教程 https://developers.google.com/identity/sign-in/android/start-integrating

//如何获得SHA-1 https://developers.google.com/android/guides/client-auth

答案 5 :(得分:0)

请检查您添加的SHA-1密钥是否已调试或发布,请根据您的密钥对其进行相对的工作。 我遇到了同样的问题,我了解我已经使用了SHA-1版本,并且正在调试测试,那么它将得到错误的结果。 谢谢

答案 6 :(得分:0)

首先生成调试密钥:

keytool -exportcert -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore

然后将SHA1粘贴到指纹部分的Firebase或Google项目设置中。

答案 7 :(得分:0)

for