首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flutter -未成功添加亚马逊网络服务AmplifyStorageS3和AmplifyDataStore插件

Flutter -未成功添加亚马逊网络服务AmplifyStorageS3和AmplifyDataStore插件
EN

Stack Overflow用户
提问于 2021-05-14 15:36:13
回答 2查看 1K关注 0票数 0

我正在尝试为Flutter配置AWS Amplify插件AmplifyDataStore和AmplifyStorageS3。

我收到以下错误:

代码语言:javascript
复制
I/amplify:flutter:auth_cognito( 1242): Added Auth plugin
I/amplify:flutter:api( 1242): Added API plugin
I/flutter ( 1242): Amplify plugin was not added
E/flutter ( 1242): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: AmplifyException(message: Amplify plugin AmplifyDataStore was not added successfully., recoverySuggestion: We currently don't have a recovery suggestion for this exception., underlyingException: MissingPluginException(No implementation found for method configureModelProvider on channel com.amazonaws.amplify/datastore))
E/flutter ( 1242): #0      AmplifyClass.addPlugin (package:amplify_flutter/amplify.dart:102:9)
E/flutter ( 1242): <asynchronous suspension>
E/flutter ( 1242):
I/flutter ( 1242): Amplify plugin was not added
E/flutter ( 1242): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: AmplifyException(message: Amplify plugin AmplifyStorageS3 was not added successfully., recoverySuggestion: We currently don't have a recovery suggestion for this exception., underlyingException: MissingPluginException(No implementation found for method addPlugin on channel com.amazonaws.amplify/storage_s3))
E/flutter ( 1242): #0      AmplifyClass.addPlugin (package:amplify_flutter/amplify.dart:102:9)
E/flutter ( 1242): <asynchronous suspension>
E/flutter ( 1242):
E/flutter ( 1242): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: MissingPluginException(No implementation found for method configure on channel com.amazonaws.amplify/amplify)
E/flutter ( 1242): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:7)
E/flutter ( 1242): <asynchronous suspension>
E/flutter ( 1242): #1      AmplifyClass.configure (package:amplify_flutter/amplify.dart:175:17)
E/flutter ( 1242): <asynchronous suspension>
E/flutter ( 1242): #2      _MyAppState._configureAmplify (package:insighteur_app/main.dart:46:7)
E/flutter ( 1242): <asynchronous suspension>
E/flutter ( 1242):

下面是main.dart文件中类的屏幕截图:

代码语言:javascript
复制
class _MyAppState extends State<MyApp> {
  bool _amplifyConfigured = false;
  void initState() {
    super.initState();
    _configureAmplify();
  }

  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: _amplifyConfigured ? Text('Check') : HomePage(),
      ),
    );
  }

  void _configureAmplify() async {
    // Add the following lines to your app initialization to add the DataStore plugin
    Amplify.addPlugin(AmplifyAuthCognito());

    Amplify.addPlugin(AmplifyDataStore(modelProvider: ModelProvider.instance));
    Amplify.addPlugin(AmplifyAPI());
    Amplify.addPlugin(AmplifyStorageS3());

    try {
      await Amplify.configure(amplifyconfig);
      setState(() {
        _amplifyConfigured = true;
      });
    } on AmplifyAlreadyConfiguredException {
      print(
          "Tried to reconfigure Amplify; this can occur when your app restarts on Android.");
    }
  }
}

我的amplifyconfiguration.dart文件如下所示:

代码语言:javascript
复制
const amplifyconfig = ''' {
    "UserAgent": "aws-amplify-cli/2.0",
    "Version": "1.0",
    "auth": {
        "plugins": {
            "awsCognitoAuthPlugin": {
                "UserAgent": "aws-amplify-cli/0.1.0",
                "Version": "0.1.0",
                "IdentityManager": {
                    "Default": {}
                },
                "CredentialsProvider": {
                    "CognitoIdentity": {
                        "Default": {
                            "PoolId": "us-west-2:fafb1966-fc0b-41e0-92e5-3124d5a8d27a",
                            "Region": "us-west-2"
                        }
                    }
                },
                "CognitoUserPool": {
                    "Default": {
                        "PoolId": "us-west-2_aH29w4X7B",
                        "AppClientId": "17c0b97ouv640bcp87m9v8pgtp",
                        "Region": "us-west-2"
                    }
                },
                "Auth": {
                    "Default": {
                        "authenticationFlowType": "USER_SRP_AUTH"
                    }
                },
                "S3TransferUtility": {
                    "Default": {
                        "Bucket": "insighteur3f5d08559c174463a5a2aa8681fc3dbe174435-dev",
                        "Region": "us-west-2"
                    }
                },
                "AppSync": {
                    "Default": {
                        "ApiUrl": "https://3w7mmufy5rdrlacj2qeg27zd7q.appsync-api.us-west-2.amazonaws.com/graphql",
                        "Region": "us-west-2",
                        "AuthMode": "API_KEY",
                        "ApiKey": "da2-u3xpqm5wvfbntmqor5cglgcatq",
                        "ClientDatabasePrefix": "insighteur_API_KEY"
                    },
                    "insighteur_AWS_IAM": {
                        "ApiUrl": "https://3w7mmufy5rdrlacj2qeg27zd7q.appsync-api.us-west-2.amazonaws.com/graphql",
                        "Region": "us-west-2",
                        "AuthMode": "AWS_IAM",
                        "ClientDatabasePrefix": "insighteur_AWS_IAM"
                    }
                }
            }
        }
    },
    "storage": {
        "plugins": {
            "awsS3StoragePlugin": {
                "bucket": "insighteur3f5d08559c174463a5a2aa8681fc3dbe174435-dev",
                "region": "us-west-2",
                "defaultAccessLevel": "guest"
            }
        }
    },
    "api": {
        "plugins": {
            "awsAPIPlugin": {
                "insighteur": {
                    "endpointType": "GraphQL",
                    "endpoint": "https://3w7mmufy5rdrlacj2qeg27zd7q.appsync-api.us-west-2.amazonaws.com/graphql",
                    "region": "us-west-2",
                    "authorizationType": "API_KEY",
                    "apiKey": "da2-u3xpqm5wvfbntmqor5cglgcatq"
                }
            }
        }
    }
}''';

pubspec.yaml文件依赖项如下所示:

代码语言:javascript
复制
dependencies:
  flutter:
    sdk: flutter
  flutter_color: any
  flutter_color_models: ^1.2.1

  amplify_flutter: '<1.0.0'
  amplify_auth_cognito: '<1.0.0'
  amplify_analytics_pinpoint: '<1.0.0'
  amplify_storage_s3: '<1.0.0'
  #file_picker: ^3.0.1
  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.0
  flutter_datetime_picker: ^1.5.1
  amplify_datastore: '<1.0.0'
  intl: ^0.15.7
  amplify_api: '<1.0.0'

dev_dependencies:
  flutter_test:
    sdk: flutter 

我试过关闭应用程序,flutter cleanflutter upgrade(使用2.14.0版本),重启Android mobile AVD……

EN

回答 2

Stack Overflow用户

发布于 2021-10-26 08:41:49

每当你得到一个Plugin not added exception,这通常是因为你正在执行一个hot-reload操作AFTER添加插件到你的应用程序。您需要完全STOP应用程序,然后再次RUN它。这就是我的问题所在

票数 1
EN

Stack Overflow用户

发布于 2021-05-15 23:51:57

  1. add amplify add storage如果成功,则执行

  1. amplify push

  1. 完成后,amplifyconfiguration.dart将更新为引用新调配的S3存储桶。

  1. 将以下依赖项添加到您的应用程序的pubspec.yaml以及您在上面的前提条件中添加的其他依赖项:

依赖项: flutter: sdk: flutter amplify_storage_s3:'<1.0.0‘

提醒:还应在上安装amplify_auth_cognito

  1. 将其导入到您的项目中:

/ 'package:amplify_auth_cognito/amplify_auth_cognito.dart';//提醒:导入'package:amplify_storage_s3/amplify_storage_s3.dart';导入main.dart

  1. 初始化放大存储

//添加此行,以包含Auth和Storage插件。Amplify.addPlugins([AmplifyAuthCognito(), AmplifyStorageS3()]);

  1. 将数据上载到您的存储桶

void uploadFile() async { //使用您选择的文件选择机制文件FilePicker.getFile=等待文件(类型: FileType.image);最终密钥=新的DateTime.now().toString();UploadFileResult结果=等待Amplify.Storage.uploadFile(密钥:密钥,本地:文件);}

下面是放大文档https://docs.amplify.aws/lib/storage/getting-started/q/platform/flutter#uploading-data-to-your-bucket

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67530658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档