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

Flutter2升级Flutter3后自动化测试时App启动即崩溃报错

问题现象
  • 基于Webdriver.io、Appium、appium flutter driver搭建的自动化测试流程,在Flutter版本从2升级至3后,测试运行时App启动后立即崩溃
  • 故障同时覆盖Android、iOS双平台的实体设备与模拟器设备,使用Flutter 2构建的App版本可正常运行,无崩溃问题
  • 采用仅包含最少依赖的Flutter示例项目验证:升级至Flutter 3前项目自动化测试可正常运行,升级后完全复现前述相同报错
复现相关命令

App构建命令

flutter build apk --debug --target=./test_driver/build.dart

测试执行命令

npx wdio config/wdio.android.flutter.conf.js --spec tests/flutter_specs/app.test.spec.js
运行报错日志
DEBUG webdriver: request failed due to response error: unknown error
ERROR webdriver: Request failed with status 500 due to unknown error: An unknown server-side error occurred while processing the command. Original error: Cannot read property 'match' of undefined
ERROR webdriver: unknown error: An unknown server-side error occurred while processing the command. Original error: Cannot read property 'match' of undefined
已尝试排查操作
  • 清理npm的node_modules目录与package-lock.json文件后重新安装依赖,问题未解决
当前依赖配置

package.json中的依赖配置如下:

"dependencies": {
    "@wdio/appium-service": "^6.1.16",
    "@wdio/cli": "^6.1.24",
    "@wdio/jasmine-framework": "^6.1.23",
    "@wdio/junit-reporter": "^7.5.3",
    "@wdio/local-runner": "^6.1.24",
    "@wdio/sauce-service": "^6.1.16",
    "@wdio/spec-reporter": "^6.1.23",
    "@wdio/sync": "^6.1.14",
    "appium": "^1.21.0",
    "appium-flutter-driver": "0.0.4",
    "appium-flutter-finder": "^0.1.0",
    "babel-eslint": "^10.1.0",
    "node-fetch": "^2.6.0",
    "webdriverio": "^6.1.24"
},
"devDependencies": {
    "npm-bundle": "^3.0.3"
},
"bundledDependencies": [
    "@wdio/appium-service",
    "@wdio/cli",
    "@wdio/jasmine-framework",
    "@wdio/junit-reporter",
    "@wdio/local-runner",
    "@wdio/sauce-service",
    "@wdio/spec-reporter",
    "@wdio/sync",
    "babel-eslint",
    "node-fetch",
    "webdriverio"
]
根因与解决方案

报错核心原因是当前使用的0.0.4版本appium-flutter-driver完全不兼容Flutter 3的底层通信协议:
Flutter 3修改了Dart VM Service观测端口的返回格式、Flutter引擎内部的服务扩展注册逻辑,旧版本driver在解析端口信息时无法获取预期字段,直接抛出Cannot read property 'match' of undefined的空引用错误,导致App启动阶段driver连接失败,外在表现为App启动立即崩溃。
当前依赖栈存在明确的版本兼容断层,按以下步骤调整即可修复:

  • 升级appium-flutter-driver至1.8.0及以上版本,同步升级appium-flutter-finder至0.2.0及以上匹配版本,上述版本开始正式适配Flutter 3的协议解析逻辑
  • 将Appium从1.x版本升级至2.x版本,1.0.0以上版本的appium-flutter-driver不再适配Appium 1.x分支
  • 确认Flutter 3构建测试包时,入口main函数中正常调用enableFlutterDriverExtension(),不要修改该扩展的默认端口配置
  • 若暂时无法升级WebdriverIO大版本,可先将所有WDIO相关依赖锁定在6.x分支的最高补丁版本,验证基础连接能力;若仍存在接口兼容问题,再升级WDIO至7.x/8.x版本适配Appium 2.x的接口规范

注意:所有1.0版本以下的appium-flutter-driver发布时间均早于Flutter 3正式版,未做任何Flutter 3适配,无法正常连接Flutter 3构建的应用。

内容的提问来源于stack exchange,提问作者Ilya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:27:34