在 Android 设备中调用 Amplify 的配置方法时 Flutter 应用程序抛出错误

问题描述

在我的 Flutter 项目中,我使用 AWS Amplify 存储插件上传文件

为此,我添加了以下依赖项

dependencies:
  Flutter:
    sdk: Flutter

  amplify_storage_s3: <1.0.0
  amplify_Flutter: <1.0.0
  amplify_auth_cognito: <1.0.0

并且在 main.dart 文件添加一个函数来配置 Amplify

  void configureAmplify() async {
    // First add plugins (Amplify native requirements)
    AmplifyStorageS3 storage = new AmplifyStorageS3();
    AmplifyAuthCognito auth = new AmplifyAuthCognito();
    Amplify.addplugins([auth,storage]);

    // Configure
    await Amplify.configure(amplifyconfig('cashify-bazaar'));
  }

我在按钮点击时调用configure 方法,它工作正常。

但问题是,一旦我调用configure 方法并通过后退将应用程序置于后台,然后从 Android 设备上最近的应用程序恢复,它会引发错误

W/GeneratedpluginsRegister(21233):尝试使用 FlutterEngine (io.Flutter.embedding.engine.FlutterEngine@99d4e49) 自动注册插件,但无法找到并调用 GeneratedpluginRegistrant。

并且没有调用Flutter插件的onAttachedToEngine,因此没有注册插件通道导致错误

未处理的异常:MissingPluginException(在通道 上找不到方法 的实现

为什么我调用onAttachedToEngine 之后 FlutterPlugin 的 Amplify.configure 方法没有被调用

解决方法

这与由 https://github.com/aws-amplify/amplify-flutter/issues/99 修复的 https://github.com/aws-amplify/amplify-flutter/pull/345 相同的问题