不断收到错误 Google Sign-In Error: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)

问题描述 投票:0回答:1

我正在尝试在没有 Firebase 的情况下为我的应用程序实现 google 登录。 我似乎已经完成了文档中建议的所有步骤以及其他答案,但我仍然不断收到此错误:

Google 登录错误:PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException:10:,空,空)

enter image description here

采取的步骤:

  1. 添加了 OAuth 同意屏幕的必要信息 enter image description here --

  2. 在我的应用程序的谷歌云控制台中添加了包名称和 SHA1 指纹:

  • 获取SHA1指纹(运行

    gradlew signingReport
    命令) enter image description here

  • 添加了包名称 enter image description here

--

  1. 实现代码:
  • AndroidManifest.xml(有互联网权限) enter image description here 该客户端 ID 位于 strings.xml 中

  • 在应用程序/build.gradle中

         signingConfigs {
             debug {
                 keyAlias 'androiddebugkey'
                 keyPassword '*****'
                 storeFile file('mykey.jks')
                 storePassword '*****'
             }
         }
    
         buildTypes {
             debug {
                 signingConfig signingConfigs.debug
             }
         }
    
    dependencies {
            implementation 'com.google.android.gms:play-services-auth:20.7.0'
        }
    
  • 在 android/build.gradle

    allprojects {
        repositories {
            google()
            mavenCentral()
        }
        buildscript {
            dependencies {
                classpath 'com.google.gms:google-services:4.3.10'
            }
        }
    }
    
  • Flutter登录.dart

    class LoginAPI {
      static final _googleSignIn = GoogleSignIn();
      static Future<GoogleSignInAccount?> login() => _googleSignIn.signIn();
      static Future signOut = _googleSignIn.signOut();
    }
    
    onPressed: () async {
        var user = await LoginAPI.login();
        print('user.....');
        print(user);
    },
    

我做错了什么?我还缺少其他步骤吗?

注意:我在没有 Firebase 的情况下实现 Google 登录,因为我们还有一个 api 来处理登录。 所以

google-services.json
还没有被添加。

这篇文章中的任何解决方案:https://stackoverflow.com/questions/54557479/flutter-and-google-sign-in-plugin-platformexceptionsign-in-failed-com-google 出于同样的原因,没有帮助解决当前的问题。 已采取任何不涉及 firebase 且与当前实施相关的其他步骤。

android flutter google-cloud-platform google-signin googlesigninaccount
1个回答
0
投票

发现了这个问题- 这是因为密钥 SHA-1 密钥不正确。 对于那些在没有 Firebase 的情况下实现 google 登录的人:

  1. 首先,运行 flutter doctor 命令:
    flutter doctor -v

它将返回java bin库路径: Java 二进制文件位于:C:\Program Files\Android\Android Studio\jbr in\java

  1. 创建 jks 文件:
    keytool -genkey -v -keystore '<path\wher\you\want\to\create\it\file_name.jks> -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias 'your_alias'

创建文件后,根据要求添加详细信息 - 转到该路径。

将文件移动到项目的“android/app/”文件夹

  1. 在 android studio 中运行此命令
    keytool -list -v -keystore <path\to\your\jks\file>

输入您的密码:

复制返回的 SHA-1 密钥(我们将使用此密钥)

  1. 将此 sha 指纹添加到您的谷歌云控制台。

Google 登录应该按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.