MissingPluginException (не найдена реализация для метода init на канале plugins.flutter.io/google_sign_in) после публикации в Google Play Store

Я задавал аналогичный вопрос раньше, но у меня возникли проблемы со входом в Google после публикации моего приложения для внутреннего и закрытого тестирования в магазине Play. Он отлично работает на эмуляторах как для Android, так и для iOS, отлично работает на реальных устройствах, когда я запускаю его с компьютера в режимах отладки и выпуска, но после публикации в магазине Play все ломается. Ошибка, которую я получаю,

MissingPluginException (не найдена реализация для метода init на канале plugins.flutter.io/google_sign_in)

Есть ли что-то конкретное, что мне не хватает? У меня такое чувство, что это одношаговое решение, и я просто не могу его найти.

Я также настроил проверенный экран согласия OAuth, исключил входы в facebook/apple — я просто не знаю, что происходит. Все работает так хорошо, прежде чем я выпущу в Play Store!

nickinspace 24.12.2020 00:17
4
1
5 246
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

добавить эту библиотеку в .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);
  }

Как мне импортировать это на экран входа в систему? Это не дартс, верно?

nickinspace 23.12.2020 08:46
Ответ принят как подходящий

У меня была та же проблема, что и у вас (такое же сообщение об ошибке при использовании Flutter, возникающее только после магазина приложений), и я смог понять это, найдя аналогичную проблему здесь: https://github.com/flutter/flutter/issues/65334

я добавил

    buildTypes {
        release {
           minifyEnabled false
           shrinkResources false
    ...

в мой файл build.gradle. Вы также можете установить для обоих этих значений значение true и запустить flutter run --release, чтобы воспроизвести проблему локально. Когда вы создаете с помощью flutter build appbundle, он по умолчанию сжимается, а при локальном запуске - нет, поэтому вы не видите проблемы при локальном запуске. Это как-то связано с обрезанием кода входа в Google. Это действительно обходной путь.

Это работает - я потратил ДНИ, пытаясь понять это. Это также решило проблему, из-за которой я даже не мог войти в систему с помощью других методов аутентификации Firebase.

nickinspace 31.12.2020 20:55

В моем случае я попытался вызвать метод из MainActivity, но в теге активности AndroidManifest.xml было неправильное имя, например:

   "io.flutter.embedding.android.FlutterFragmentActivity"

Поэтому я изменил его на

  ".MainActivity"

У меня была такая же проблема с реакцией, и все, что мне нужно было сделать, это изменить android/app/build.gradle

    buildTypes {
    release {
       minifyEnabled true

к

    buildTypes {
    release {
       minifyEnabled false

синхронизировать и очистить сборку перед повторным запуском

Другие вопросы по теме