Flutter接入Amplify Cognito用户池出现Amplify plugin was not added错误如何解决
报错问题定位与解决步骤
该Amplify plugin was not added错误核心原因是Amplify Auth Cognito插件的原生/平台端实现未正确加载,按以下步骤排查即可解决:
1 依赖校验
首先确认pubspec.yaml中已添加版本匹配的Amplify依赖,amplify_flutter和amplify_auth_cognito的大版本号必须完全一致,示例配置如下:
dependencies: flutter: sdk: flutter amplify_flutter: ^1.6.0 amplify_auth_cognito: ^1.6.0
配置完成后执行flutter pub get完成依赖拉取。
注意:禁止两个依赖使用不同大版本,否则会出现兼容性问题导致插件加载失败
2 初始化逻辑校验
Amplify必须严格遵循「先添加插件、再执行配置」的顺序,且不可重复初始化,正确的初始化代码如下:
import 'package:amplify_flutter/amplify_flutter.dart'; import 'package:amplify_auth_cognito/amplify_auth_cognito.dart'; // 引入你的配置文件 import 'amplifyconfiguration.dart'; Future<void> initAmplify() async { final authPlugin = AmplifyAuthCognito(); try { // 一次性添加所有所需插件,不要分多次调用addPlugin await Amplify.addPlugins([authPlugin]); // 插件添加成功后再执行配置 await Amplify.configure(amplifyconfig); } on AmplifyAlreadyConfiguredException { // 捕获重复初始化异常,避免崩溃 safePrint("Amplify已完成初始化,无需重复配置"); } catch (err) { safePrint("Amplify初始化失败:$err"); } }
注意:不要在addPlugin异步方法未执行完成前就调用configure,也不要拆分addPlugin调用多次添加插件
3 平台适配校验
- 如果运行在Web端:需要在
web/index.html中引入与当前Flutter Amplify版本匹配的Amplify JS SDK,完成Web端的依赖适配。 - 如果运行在Android/iOS端:执行以下命令清理旧构建缓存,重新编译原生部分:
flutter clean flutter pub get # iOS端额外执行 cd ios && pod install --repo-update && cd ..
修改完配置后必须冷启动应用,不要使用热重载/热重启,插件依赖变更需要全量重新编译才会生效。
4 配置文件校验
你提供的amplifyconfiguration配置结构是正确的,不建议手动修改配置文件内容,优先使用Amplify CLI拉取云端生成的配置,避免手动输入的字段错误导致配置不匹配。
内容的提问来源于stack exchange,提问作者Andrii
相关产品推荐
相关产品推荐

