Flutter集成pay 1.0.0实现Apple Pay时出现'minimumButonWidth'未找到错误
Flutter集成pay包实现Apple Pay编译错误解决
问题描述
使用Flutter 3.3.9(Dart SDK 2.18.5)集成pay: 1.0.0包开发Apple Pay功能时,出现以下编译错误:
Error: Member not found: 'minimumButonWidth'. double width = RawApplePayButton.minimumButonWidth, ^^^^^^^^^^^^^^^^^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/pay-1.1.0/lib/src/widgets/apple_pay_button.dart:42:43: Error: Member not found: 'minimumButonWidth'. }) : assert(width >= RawApplePayButton.minimumButonWidth), Execution failed for task ':app:compileFlutterBuildDebug'. > Process 'command 'C:\src\flutter\bin\flutter.bat'' finished with non-zero exit value 1
原因分析
- 虽声明依赖
pay: 1.0.0,但实际拉取的是pay: 1.1.0版本(大概率是版本约束用了^符号导致自动升级)。 pay: 1.1.0依赖的Flutter SDK版本高于当前的3.3.9,RawApplePayButton.minimumButonWidth是Flutter 3.7+版本新增的静态属性,旧SDK中不存在该成员,因此编译失败。
解决方案
方案1:锁定pay包为1.0.0版本
- 打开
pubspec.yaml,修改pay的依赖声明,去掉版本号前的^符号,强制使用指定版本:dependencies: pay: 1.0.0 - 执行命令重新拉取依赖:
flutter pub get
方案2:升级Flutter SDK到兼容版本
- 升级Flutter到3.7及以上版本(适配
pay:1.1.0的最低SDK要求),执行升级命令:flutter upgrade - 升级完成后重新编译项目。
方案3:临时代码修复(不推荐)
- 找到本地pub缓存中的
pay-1.1.0包文件,路径为C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/pay-1.1.0/lib/src/widgets/apple_pay_button.dart - 将文件中所有
RawApplePayButton.minimumButonWidth替换为Apple Pay官方要求的最小宽度数值(如200.0),修改后重新编译。 - 注意:此方法仅为临时方案,重新拉取依赖后修改会失效。
内容的提问来源于stack exchange,提问作者Vishal Khodre
相关产品推荐
相关产品推荐

