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

I asked a similar question before, but I am having trouble with Google Sign-in after publishing my app to internal and closed testing on the Play store. It works perfectly well on emulators for both Android and iOS, works great on real devices when I run it from my computer in debug and release modes, but once published to the Play store, everything breaks. The error I get is

MissingPluginException(No implementation found for method init on channel plugins.flutter.io/google_sign_in)

Is there anything in particular I'm missing? I have a feeling this is a one-step solution and I just can't find it.



Solution 1:[1]

I had the same problem as you (same error message, using Flutter, only occuring after app store) and was able to figure it out by finding an analagous problem here: https://github.com/flutter/flutter/issues/65334

I added

    buildTypes {
        release {
           minifyEnabled false
           shrinkResources false
    ...

to my build.gradle file. You can also set both of those values to true and run flutter run --release to reproduce the issue locally. When you build with flutter build appbundle it shrinks by default whereas running locally does not, that's why you aren't seeing the issue when running locally. It has something to do with the google sign in code being trimmed. This is really a workaround.

Solution 2:[2]

add this library in .yaml

google_sign_in: ^0.0.2

then import this in your login screen

import io.flutter.plugins.GeneratedPluginRegistrant;

then add this to the onCreate function

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

Solution 3:[3]

In my case I tried to invoke method from MainActivity, but in AndroidManifest.xml activity tag had wrong name, like this:

   "io.flutter.embedding.android.FlutterFragmentActivity"

So I changed it to

  ".MainActivity"

Solution 4:[4]

I had the same Issue on react native and all I had to do was change android/app/build.gradle

    buildTypes {
    release {
       minifyEnabled true

to

    buildTypes {
    release {
       minifyEnabled false

sync and clean build before running again

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Zak
Solution 2 Tharaka Dayanjana
Solution 3 Sn1cKa
Solution 4 Sherif Samir