当前位置: 首页 > 知识库问答 >
问题:

颤动和google_sign_in插件:平台异常(sign_in_failed,

孟品
2023-03-14

凭据对话框(Google表单)已成功打开,但在我填写凭据后,出现了此错误。我按照此处的说明进行了操作。创建了一个Firebase项目,从Google API控制台启用了Google Drive API(这就是我现在需要的)。

引发异常的代码:

final GoogleSignIn _googleSignIn = GoogleSignIn(
  scopes: [
    'https://www.googleapis.com/auth/drive',
  ],
);

await _googleSignIn.signIn();

这是堆栈跟踪:

E/flutter ( 5068): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
E/flutter ( 5068): PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
E/flutter ( 5068): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:551:7)
E/flutter ( 5068): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:292:18)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #2      GoogleSignIn._callMethod (package:google_sign_in/google_sign_in.dart:226:58)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #3      GoogleSignIn._addMethodCall (package:google_sign_in/google_sign_in.dart:268:20)
E/flutter ( 5068): #4      GoogleSignIn.signIn (package:google_sign_in/google_sign_in.dart:339:48)
E/flutter ( 5068): #5      ThatsMyComponentState.theSignInFuction.<anonymous closure> (package:my_app/widgets/my_file.dart:666:45)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #6      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
E/flutter ( 5068): #7      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
E/flutter ( 5068): #8      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
E/flutter ( 5068): #9      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
E/flutter ( 5068): #10     TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:204:7)
E/flutter ( 5068): #11     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
E/flutter ( 5068): #12     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:184:20)
E/flutter ( 5068): #13     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:158:22)
E/flutter ( 5068): #14     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:138:7)
E/flutter ( 5068): #15     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:101:7)
E/flutter ( 5068): #16     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:85:7)
E/flutter ( 5068): #17     _invoke1 (dart:ui/hooks.dart:168:13)
E/flutter ( 5068): #18     _dispatchPointerDataPacket (dart:ui/hooks.dart:122:5)

google_sign_in插件的版本是4.0.0。

这是颤振多克托 -v 的输出:

[√] Flutter (Channel stable, v1.0.0, on Microsoft Windows [Version 10.0.17763.253], locale en-US)
• Flutter version 1.0.0 at C:\src\flutter-0.7.3\flutter
• Framework revision 5391447fae (10 weeks ago), 2018-11-29 19:41:26 -0800
• Engine revision 7375a0f414
• Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
• Android SDK at C:\Users\myuser\AppData\Local\Android\Sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = C:\Users\myuser\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
• All Android licenses accepted.

[√] Android Studio (version 3.3)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 32.0.1
• Dart plugin version 182.5124
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[!] IntelliJ IDEA Community Edition (version 2018.1)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1.6
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
• For information about installing plugins, see
  https://flutter.io/intellij-setup/#installing-the-plugins

[!] VS Code, 64-bit edition (version 1.30.2)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension not installed; install from
  https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

! Doctor found issues in 2 categories.

任何帮助将不胜感激。谢谢!

共有3个答案

唐睿
2023-03-14

以下解决方案适用于颤振项目:< br >

步骤 1:生成 SHA1 和 SHA256 密钥。
步骤 2:将 SHA1 和 SHA256 添加到火基。(在您的应用设置中)
步骤3: 将谷歌服务.json下载到您的项目文件夹中的Android/应用程序。
步骤4:在终端中运行命令颤振干净
第 5 步:运行颤动应用。

欲了解更多信息,请访问:< br > https://developers . Google . com/Android/guides/client-auth < br > https://firebase.google.com/docs/flutter/setup

祖翰音
2023-03-14

我花了很长时间试图解决这个问题。

1.打开grade.properties该文件位于:{ {您的项目}}/android/gradle.properties下

2. 将以下参数添加到“组织.gradle.jvmargs”中,如屏幕截图所示。

-XX: MaxHeapSize=256m-Xmx256m

3.右键单击“gradlew”,然后转到“在终端中打开”此文件位于{{您的项目}}/机器人/gradlew下

4.输入以下命令。

gradlew signingReport

如果第一个命令无效,请尝试第二个命令:

./gradlew signingReport

5.等待编译完成,您的SHA密钥应该会为您打印出来。

使用这些密钥在 https://console.firebase.google.com/ 中对应用进行身份验证

容阳焱
2023-03-14

我刚才遇到了同样的问题。如果您正在调试时运行,并且没有在firebase中注册SHA指纹,则可能会发生这种情况。我通过生成<code>调试来解决这个问题。keystore</code>并将其注册到Firebase上的应用程序中。不要忘记下载新的<code>谷歌服务。json</code>之后。另请参见此。

编辑如果您无法在发布模式下使用身份验证,请尝试以下操作:

-添加释放密钥的 SHA 证书指纹。

keytool -exportcert -list -v \ -alias

有关详细信息,请参见此处的“获取发布证书”部分https://developers.google.com/android/guides/client-auth

如果您的身份验证仍然不起作用,可能是因为您从Playstore下载了应用程序,并启用了“Google Play应用程序签名功能”,那么在这种情况下,请转到play store发布控制台,然后转到发布管理下的应用程序签名。在那里,您将找到要在Firebase控制台中注册的SHA证书指纹。

 类似资料:
  • 我已经按照这里的所有步骤进行了操作,我还在Firebase控制台中添加了SHA1键。 这是我的代码 我按照以下步骤创建了一个debug. keystore 异常:平台异常(sign_in_failed,com.google.android.gms.common.api.ApiException:10:,null)E/flutter(30467):#0 StandardMethodCodec。dec

  • 在为Android实现平台特定的代码时,我遇到了以下错误。 [ERROR: flutter/lib/ui/ui_dart_state.cc(186)]未处理的异常:缺少插件异常(在通道plugins.flutter.io/path_provider上没有找到方法getTemporaryDirectory的实现)

  • 在将其标记为副本之前,请阅读问题。 我在我的谷歌控制台中设置了SHA1和SHA256。 我已经尝试了很多方法,但仍然面临错误。 未处理的异常: 平台异常(sign_in_failed, 还尝试了Flutter和google_sign_in插件:PlatformException(sign_in_failed,com.google.android.gms.common.api.ApiExceptio

  • 我有一个Flutter应用程序,我试图允许用户登录他们的Gmail,因为我想能够列出他们的电子邮件。当我按下我的时,我会收到Gmail登录的提示,我输入了我的凭据,但随后它会返回到带有的屏幕,我面临错误: 我尝试过: 向 /android/app添加了,并向ios/Runner添加了。 启用gmail进行Firebase身份验证。 将调试SHA1和SHA256添加到Firebase身份验证中。 填

  • 从版本4.3.0开始,Cordova提供了保存和恢复平台和插件的能力。 这个特性允许开发者保存和恢复他们的app到一个已知的状态,而不用去检测所有平台和插件的源代码。 'save'命令存储app平台和插件的详细版本信息到config.xml里面。当一个'cordova prepare'命令发出,通过利用先前保存在config.xml里面的信息, 'restore'步骤就会自动执行。 下面场景,sa

  • 我在play商店上传了我的应用程序,但是当我为flutter应用程序创建IPA时,我收到了以下两个错误: 未处理的异常:MissingPluginException(在通道Ponnam Karthik/Flutter toast上找不到方法showToast的实现)