Boy*_*rov 27 google-signin flutter
凭证对话框(Google表单)已成功打开,但是在填写凭证后出现此错误。我遵循了这里的指示。创建了一个Firebase项目,并从Google API控制台启用了Google Drive API(现在是我现在所需要的)。
代码抛出异常:
final GoogleSignIn _googleSignIn = GoogleSignIn(
scopes: [
'https://www.googleapis.com/auth/drive',
],
);
await _googleSignIn.signIn();
Run Code Online (Sandbox Code Playgroud)
那是堆栈跟踪:
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)
Run Code Online (Sandbox Code Playgroud)
google_sign_in插件的版本为4.0.0。
那是flutter doctot -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.
Run Code Online (Sandbox Code Playgroud)
任何帮助都感激不尽。谢谢!
Kyl*_*ppe 54
我花了很长时间试图解决这个问题。
1. 打开grade.properties该文件位于:{{YOUR PROJECT}}/android/gradle.properties
2. 将以下参数添加到“org.gradle.jvmargs”,如屏幕截图所示。
-XX:MaxHeapSize=256m -Xmx256m
3. 右键单击“gradlew”并转到“在终端中打开” 此文件位于 {{YOUR PROJECT}}/android/gradlew
4. 输入以下命令。
gradlew signingReport
Run Code Online (Sandbox Code Playgroud)
如果不起作用,请先尝试第二个命令:
./gradlew signingReport
Run Code Online (Sandbox Code Playgroud)
5. 等待编译完成,您的 SHA 密钥应该会为您打印出来。
使用这些密钥在https://console.firebase.google.com/ 中对您的应用进行身份验证
Mat*_*ini 52
打开 Firebase 控制台并单击设置图标。
您将看到连接到 Firebase 项目的应用列表
安卓版
cd android./gradlew signingReport 或者 gradlew signingReportgoogle-services.jsonflutter cleanIOS:
GoogleService-info.plist将此添加到您的 info.plist
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>**INSERT HERE YOUR RESERVED_CLIENT_ID FROM GoogleService-Info.plist**</string>
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
TSR*_*TSR 30
我刚才遇到了同样的问题。如果您在调试中运行并且未在Firebase中注册Sha指纹,则可能会发生这种情况。我通过生成一个debug.keystore并在Firebase上的应用程序中注册了它来解决了它。之后不要忘记下载新的google-services.json。另请参阅https://developers.google.com/android/guides/client-auth
编辑 如果无法在发布模式下使用身份验证,请尝试以下操作:
-添加释放密钥的SHA证书指纹。
keytool -exportcert -list -v \
-alias <your-key-name> -keystore <path-to-production-keystore>
Run Code Online (Sandbox Code Playgroud)
有关此内容的更多详细信息,请参见此处"get release certificate" https://developers.google.com/android/guides/client-auth
如果您的身份验证仍然不起作用,可能是因为您从Playstore下载了该应用程序,并且启用了 “通过Google Play功能进行应用程序签名” 。在这种情况下,请转到Play商店发布控制台,然后在发布管理下转到应用程序签名。在那里,您会找到要在Firebase控制台中注册的SHA证书指纹。
fun*_*983 16
为了让 google_sign_in 工作,您可能需要采取其他步骤:
keytool -list -v -keystore ~/key.jks -alias key
您应该最终获得至少 6 个 SHA 凭据:2 个来自调试密钥,2 个来自 Google Play 链接,2 个来自发布密钥。请注意,在将发布 SHA 凭据添加到 firebase 后,您无需重新下载 google-services.json 文件。
# Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
# GooglePlay Services
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
-keep class com.google.common.** { *; }
-dontwarn com.google.common.**
Run Code Online (Sandbox Code Playgroud)
Bal*_*des 10
早期给出的答案是正确的。它们都不是假的。但如果您仍然面临该错误PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)。您应该检查的一件事是您的OAuth 2.0 Client IDs
成功生成客户端 ID 后,您的应用程序将按预期运行。
- - 笔记 - -
但首先,请确保您已注册您的SHA-1,并已从您的 firebase 控制台项目package id email support下载。google service json
小智 9
我找到了错误的解决方案com.google.android.gms.common.api.ApiException: 10:我通过向 firebase 添加更多键来解决它。最初我认为这是愚蠢和无用的,然后最终证明它是解决方案(我加了 10 个 SHA,如果这很多,请不要担心)。
我通过进入 android 文件夹并输入命令找到了所有这些键./gradlew signingReport(我使用 linux,它也适用于 mac。对于 windows,命令是gradlew signingReport)
之后,他在我的终端上打印出一长串钥匙,我把所有不同的钥匙都拿出来,放在名单的最前面。
注意:您将获得应用程序每个包的所有密钥(调试和发布),但请放心,所有这些包都是相同的并且仅用于调试(因此您只需要获取这些相同的密钥一次)
获得所有应用密钥后,转到项目的 Firebase 设置,向下滚动并添加找到的任何密钥。之后,您将需要google-services.json再次下载该文件并flutter clean在您计算机上项目的本地文件夹中运行。
现在您可以构建您的应用程序并查看它是否有效!
我希望这可以帮助某人。
以下解决方案在flutter项目中适用:
步骤1:生成SHA1和SHA256密钥。
步骤2:将SHA1和SHA256都添加到Firebase。(在您的应用程序设置中)
步骤3:将google-services.json下载到项目文件夹中的android / app。
步骤4:在您的终端中运行命令flutter clean。
步骤5:运行您的Flutter应用。
有关更多信息,请访问:
https : //developers.google.com/android/guides/client-auth
https://firebase.google.com/docs/flutter/setup
小智 7
您可能遇到此错误的原因之一是您没有填写 Google 的 OAuth 同意表。这是 Firebase 的一项新更改。
以下是填写应用同意书时需要遵循的步骤:


这些步骤对我有用!虽然链接可能不再存在,但我想在此处引用此解决方案的来源
确保您已添加
dependencies {
classpath 'com.google.gms:google-services:4.2.0'
}
Run Code Online (Sandbox Code Playgroud)
在 android/build.gradle 和
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
在android/app/build.gradle中。另外,请确保android/app/build.gradle中的 applicationId 与AndroidManifest.xml中的包名称相同(有时更改包名称后您可能会忘记更改 applicationId)。清单文件中的此 applicationId 或包名称应该是 firebase 应用程序中的 android 包名称。
小智 5
对于平台异常 10,请尝试以下操作:
在android/app/build.gradle中,我将依赖项从com.android.tools.build:gradle:3.1.3 / com.google.gms:google-services:3.2.1更改为com.android.tools.build:gradle :3.2.1 / com.google.gms:google-services:4.2.0。它奏效了。
| 归档时间: |
|
| 查看次数: |
14452 次 |
| 最近记录: |