Flutter项目编译报错:不存在'maxFacetHits'命名参数(Algolia相关)
今日尝试构建Flutter项目时,Android和iOS模拟器均无法运行,反复出现如下报错:
Error (Xcode): ../../../../.pub-cache/hosted/pub.dev/algolia_helper_flutter-1.1.0/lib/src/service/algolia_client_extensions.dart:41:7: Error: No named parameter with the name 'maxFacetHits'.
我的flutter doctor检测结果如下:
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.27.0, on macOS 15.1.1 24B91 darwin-arm64, locale en-US) [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 16.2) [✓] Chrome - develop for the web [✓] Android Studio (version 2023.3) [✓] VS Code (version 1.96.0) [✓] Connected device (5 available) [✓] Network resources
我已多次执行flutter clean和flutter pub get命令,但问题仍未解决。当前使用的Algolia相关依赖版本:
- algolia_helper_flutter: 1.1.0
- algolia_insights: 1.0.1
这个报错是因为algolia_helper_flutter 1.1.0中使用的maxFacetHits参数,与其依赖的底层Algolia客户端库版本不兼容导致的,可按以下方式解决:
升级Algolia依赖到兼容版本
打开项目的pubspec.yaml文件,将Algolia相关依赖更新到最新稳定版:algolia_helper_flutter: ^2.0.0 algolia_insights: ^2.0.0执行
flutter pub upgrade更新依赖,之后再依次运行flutter clean和flutter pub get,重新构建项目。锁定底层客户端兼容版本(如需保留现有依赖版本)
若暂时不想升级大版本,可在pubspec.yaml中指定与algolia_helper_flutter 1.1.0匹配的底层algolia客户端版本:algolia: ^1.0.0 # 需确认此版本与1.1.0的helper库兼容 algolia_helper_flutter: 1.1.0 algolia_insights: 1.0.1执行
flutter pub get后重新尝试构建。彻底清除缓存后重建
除常规的flutter clean,可手动删除pub缓存中对应的旧版本依赖:rm -rf ~/.pub-cache/hosted/pub.dev/algolia_helper_flutter-1.1.0 rm -rf ~/.pub-cache/hosted/pub.dev/algolia_insights-1.0.1之后再执行
flutter pub get和项目构建命令。
内容的提问来源于stack exchange,提问作者Ten Digit Grid

