【问题标题】:MissingPluginException(No implementation found for method init on channel plugins.flutter.io/google_sign_in) after publishing to Google Play Store发布到 Google Play 商店后,MissingPluginException(在通道 plugins.flutter.io/google_sign_in 上找不到方法 init 的实现)
【发布时间】:2021-03-31 18:54:37
【问题描述】:

我之前问过类似的问题,但在将我的应用发布到 Play 商店的内部和封闭测试后,我在使用 Google 登录时遇到了问题。它在 Android 和 iOS 的模拟器上运行良好,当我从计算机以调试和发布模式运行它时,它在真实设备上运行良好,但一旦发布到 Play 商店,一切都会中断。我得到的错误是

MissingPluginException(在通道 plugins.flutter.io/google_sign_in 上找不到方法 init 的实现)

有什么我特别想念的吗?我感觉这是一个一步到位的解决方案,但我就是找不到。

【问题讨论】:

  • 我还设置了一个经过验证的 OAuth 同意屏幕,取消了 facebook/apple 登录——我只是不知道发生了什么。在我发布到 Play 商店之前,一切都运行良好!

标签: android firebase flutter dart google-signin


【解决方案1】:

我遇到了和你一样的问题(同样的错误消息,使用 Flutter,只在应用商店之后出现)并且能够通过在这里找到一个类似的问题来解决这个问题: https://github.com/flutter/flutter/issues/65334

我加了

    buildTypes {
        release {
           minifyEnabled false
           shrinkResources false
    ...

到我的 build.gradle 文件。您还可以将这两个值都设置为 true 并运行 flutter run --release 以在本地重现问题。当您使用flutter build appbundle 构建时,默认情况下它会缩小,而在本地运行则不会,这就是为什么在本地运行时您没有看到问题的原因。它与正在修剪的谷歌登录代码有关。这确实是一种解决方法。

【讨论】:

  • 这行得通——我花了几天时间试图弄清楚这一点。它还解决了我什至无法使用其他 Firebase 身份验证方法登录的问题。
【解决方案2】:

在 .yaml 中添加这个库

google_sign_in: ^0.0.2

然后将其导入您的登录屏幕

import io.flutter.plugins.GeneratedPluginRegistrant;

然后将其添加到 onCreate 函数中

@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    GeneratedPluginRegistrant.registerWith(this);
  }

【讨论】:

  • 如何将其导入我的登录屏幕?这不是飞镖吧?
【解决方案3】:

在我的例子中,我尝试从 MainActivity 调用方法,但在 AndroidManifest.xml 活动标签中的名称错误,如下所示:

   "io.flutter.embedding.android.FlutterFragmentActivity"

所以我改成

  ".MainActivity"

【讨论】:

    猜你喜欢
    • 2020-12-09
    • 2020-07-16
    • 2020-10-20
    • 2021-05-28
    • 2019-09-06
    • 2021-05-18
    • 2021-09-12
    • 2020-08-18
    相关资源
    最近更新 更多