You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter iOS构建报错:evaluateJavaScript方法使用歧义及方法覆写问题

Flutter iOS构建报错:evaluateJavaScript方法使用歧义及方法覆写问题

嘿,遇到这种情况我之前也碰过,别慌,咱们一步步来排查解决!

你遇到的这两个报错——Method does not override any method from its superclass和Ambiguous use of 'evaluateJavaScript(_:completionHandler:)',本质上都是**flutter_inappwebview_ios这个依赖包和你当前的Flutter/Xcode环境不兼容**导致的,下面是具体的解决步骤:

1. 升级flutter_inappwebview依赖版本

这个子包是flutter_inappwebview的iOS端实现,旧版本的代码可能和新的Flutter/Xcode API不匹配:

  • 打开项目根目录的pubspec.yaml,找到flutter_inappwebview的依赖项,替换成最新的稳定版(比如当前常用的^5.8.0,你也可以去pub.dev确认最新版本号):
dependencies:
  flutter:
    sdk: flutter
  flutter_inappwebview: ^5.8.0 # 替换为最新稳定版
  • 运行命令更新依赖:
flutter pub get

2. 清理缓存并重新安装iOS依赖

缓存和旧的Pod依赖经常会引发这类兼容性问题:

  • 先清理Flutter缓存:
flutter clean
  • 进入iOS目录,删除旧的Pod锁文件:
cd ios
rm Podfile.lock
  • 更新Pod仓库并重新安装依赖:
pod install --repo-update

3. 检查Xcode的Swift版本设置

如果上述步骤没用,可能是Swift版本不匹配:

  • 用Xcode打开项目的ios目录,找到flutter_inappwebview_ios这个Target;
  • 进入Build Settings,搜索Swift Language Version,将其设置为和你的主项目一致的版本(建议设置为5.0及以上)。

4. 升级Flutter SDK到稳定版

如果你的Flutter版本太旧,也可能和新的依赖包不兼容:

flutter upgrade

报错原因补充说明

  • 第一个报错是因为InAppWebView.swift里的方法试图覆写父类的方法,但方法签名和父类不匹配(要么父类没有这个方法,要么参数/返回值类型不对);
  • 第二个报错是因为evaluateJavaScript有多个重载方法,旧包的调用方式在新环境下出现了参数歧义,编译器不知道该调用哪个版本。

按这些步骤试一下,应该能搞定问题,如果还有疑问可以再检查下依赖和环境的匹配度~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:53:12