[英]MissingPluginException(No implementation found for method init on channel plugins.flutter.io/google_sign_in) after publishing to Google Play Store
[英]MissingPluginException(No implementation found for method init on channel plugins.flutter.io/google_sign_in)
使用 Flutter 的 google sign_in
但是当我使用此语句登录用户时看到以下消息
_googleSignIn.signIn();
E/flutter(6491):MissingPluginException(未在通道插件上找到方法 init 的实现。flutter.io/google_sign_in)
我验证了以下步骤:
GoogleSignInPlugin.registerWith(registry.registrarFor("io.flutter.plugins.googlesignin.GoogleSignInPlugin")); // is present
GeneratedPluginRegistrant.registerWith(this); // in MainActivity.Java
用户是否经常报告此错误。 不确定如何进行。 我正在做大多数文档所说的,但它不起作用。
我看到的其他奇怪行为是,我第一次运行 flutter 时,它卡在等待 googleSignIn.SignIn() 上。
只有在我进行热重载(通过键入“r”)之后,我才会看到上面的错误消息:
E/flutter (12326): MissingPluginException (No implementation found for method init on channel plugins.flutter.io/google_sign_in)
问题:是否有其他方法可以对 Flutter 应用程序进行基本身份验证。 我只需要某种基本身份验证,以便我的服务器可以知道它正在为哪个用户提供数据。
运行flutter clean
并重新启动IDE以及完全重新构建应用程序。 这将修复它。
当我遇到这个问题时,我一直在头疼。 终于我意识到我做错了什么。 我必须执行以下步骤
1>切换到master分支flutter channel master
2> flutter upgrade
3> flutter clean
4>最重要的部分,检查你是否有facebook插件。 如果是,请完全设置(未测试)或将其删除(有效),因为它与 google 插件混淆
最后我在颤振中发现了问题,因为 google 和 facebook login pub 之间存在冲突
在 pubspec.yaml 文件中
google_sign_in: ^4.5.3
flutter_facebook_login: ^3.0.0 -> 删除这个
并评论 Facebook 登录的所有代码
事实证明,您不必删除flutter_facebook_login
即可使google_signin
工作。 当flutter_facebook_login
在注册期间抛出并阻止google_sign_in
注册时, flutter_facebook_login
发生这种情况, flutter_facebook_login
flutter 的官方 repo 贡献者在此处所说的那样。
该线程的评论之一中提供的解决方案是在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
添加所需的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 -->
对我来说是再次安装豆荚
在颤振项目目录中打开终端并写入
cd ios
pod install
它最近发生在 Flutter 存储库的 beta 频道上。 考虑从稳定渠道签出。
我一次尝试了很多东西,所以我不太确定,但我想这解决了问题。
flutter_facebook_login: ^3.0.0 -> remove this one
记住在flutter项目中安装插件后,热重载或者重启都会抛出这个错误(缺少插件异常),需要重新运行app! 热重载仅支持纯 dart 代码,插件包含本地代码,如 java 或 swift,这些代码必须可用于 dart 代码,因此重新编译是将本地代码推送到设备上运行的应用程序的唯一选项。
您可以停止应用程序并尝试使用此命令
1 flutter doctor
如果有问题请修复
2 flutter clean
3 flutter run -v
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.