使用Flutter的google sign_in
但是当我使用此语句登录用户时看到以下消息
_googleSignIn.signIn();
E / flutter(6491):MissingPluginException(未找到任何实现 方法init on channel plugins.flutter.io/google_sign_in)
我验证了以下步骤:
GoogleSignInPlugin.registerWith(registry.registrarFor("io.flutter.plugins.googlesignin.GoogleSignInPlugin")); // is present
GeneratedPluginRegistrant.registerWith(this); // in MainActivity.Java
用户是否经常报告此错误。不知道如何继续。我正在做大多数文档所说的,但它没有用。
我看到的其他奇怪的行为是,第一次运行flutter run时它会卡在等待googleSignIn.SignIn()。
只有在我进行热重新加载后(通过键入" r"),我才看到上面的错误消息:
E / flutter(12326):MissingPluginException(未找到任何实现 方法init on channel plugins.flutter.io/google_sign_in)
问题:是否有任何替代方法可以在Flutter应用程序上执行基本身份验证。我只需要某种基本身份验证,以便我的服务器可以知道它正在向哪个用户提供数据。
答案 0 :(得分:6)
遇到这个问题时,我一直不停地思考。终于,我意识到自己在做错什么。我必须执行以下步骤
1>切换到主分支
flutter channel master
2> flutter upgrade
3> flutter clean
4>最重要的部分,检查您是否具有facebook插件。如果是,请完全设置(未经测试)或将其删除(有效),因为它会与Google插件混淆在一起
答案 1 :(得分:3)
运行
flutter clean
并完全重新启动IDE和应用程序。这将解决它。
答案 2 :(得分:2)
我的 Flutter 应用程序运行良好,直到我添加:
<块引用>flutter_facebook_login: ^3.0.0
在 Flutter 的 Github issue #62639 和 #61166 中搜索了一段时间后,明确指出目前 Google Sign In 和 Facebook Login 插件不能一起使用。
答案 3 :(得分:2)
最后我发现了 flutter 的问题,因为 google 和 facebook 登录 pub 之间存在冲突
在 pubspec.yaml 文件中
google_sign_in:^4.5.3
flutter_facebook_login: ^3.0.0 -> 删除这个
并评论所有登录facebook的代码
答案 4 :(得分:0)
对我来说,是要重新安装吊舱
在flutter项目目录中打开终端并编写
cd ios
pod install
答案 5 :(得分:0)
最近发生在Flutter存储库的Beta通道上。考虑从稳定渠道退房。
答案 6 :(得分:0)
我一次尝试了很多东西,所以我不太确定,但我想这解决了问题。
flutter_facebook_login: ^3.0.0 -> remove this one
答案 7 :(得分:0)
记住在flutter项目中安装插件后,热重载或者重启都会抛出这个错误(缺少插件异常),需要重新运行app! 仅纯 dart 代码支持热重载,插件包含 java 或 swift 等本机代码,这些代码必须可用于 dart 代码,因此重新编译是将本机代码推送到设备上运行的应用程序的唯一选择。
答案 8 :(得分:0)
事实证明,您无需删除 flutter_facebook_login
即可使 google_signin
工作。当 flutter_facebook_login
在注册期间抛出并阻止 google_sign_in
按照 flutter 的官方存储库贡献者 here 进行注册时,会发生这种情况。
该线程评论的one中提供的解决方案是在AndroidManifest.xml
中注册Facebook插件,我也忘记了。在清单中注册 Facebook 解决了这个问题。
清单中添加的代码是:
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
<activity android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
不要忘记在 strings.xml
中添加所需的字符串为
<string name="app_name">Your App Name</string> <!-- app name on fb -->
<string name="facebook_app_id">Your FB ID</string> <!-- fb app id -->
<string name="fb_login_protocol_scheme">Your FB protocol scheme</string> <!-- fb+ fb app id -->