发布到 Google Play 商店后,MissingPluginException(未在频道 plugins.flutter.io/google_sign_in 上找到方法 init 的实现)

MissingPluginException(No implementation found for method init on channel plugins.flutter.io/google_sign_in) after publishing to Google Play Store

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

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

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

在 .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);
  }

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

我加了

    buildTypes {
        release {
           minifyEnabled false
           shrinkResources false
    ...

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

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

   "io.flutter.embedding.android.FlutterFragmentActivity"

所以我改成了

  ".MainActivity"

我在 React Native 上遇到了同样的问题,我所要做的就是更改 android/app/build。gradle

    buildTypes {
    release {
       minifyEnabled true

    buildTypes {
    release {
       minifyEnabled false

在 运行 之前再次同步和清理构建