本地运行Flutter Gallery执行flutter pub get时遇语法错误求助
问题描述
复现步骤
- 切换至master频道并完成Flutter升级
- 克隆flutter/gallery项目到本地
- 执行
flutter pub get命令 - 出现报错:
生成合成本地化包失败,存在1个错误:
Exception: Found syntax errors.
日志信息
Exception: Found syntax errors. #0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3) #1 generateLocalizationsSyntheticPackage (package:flutter_tools/src/dart/generate_synthetic_packages.dart:67:5) <asynchronous suspension> #2 PackagesGetCommand._runPubGet (package:flutter_tools/src/commands/packages.dart:132:7) <asynchronous suspension> #3 PackagesGetCommand.runCommand (package:flutter_tools/src/commands/packages.dart:175:5) <asynchronous suspension> #4 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1275:27) <asynchronous suspension> #5 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #6 CommandRunner.runCommand (package:args/command_runner.dart:209:13) <asynchronous suspension> #7 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:290:9) <asynchronous suspension> #8 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #9 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:236:5) <asynchronous suspension> #10 run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:64:9) <asynchronous suspension> #11 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #12 main (package:flutter_tools/executable.dart:91:3) <asynchronous suspension>
Flutter Doctor检测结果
[✓] Flutter (Channel master, 3.7.0-13.0.pre.63, on Microsoft Windows [版本 10.0.22621.963], locale zh-CN) • Flutter版本3.7.0-13.0.pre.63,位于master频道,路径C:\src\flutter • 上游仓库https://git.sjtu.edu.cn/sjtug/flutter-sdk.git • FLUTTER_GIT_URL = https://git.sjtu.edu.cn/sjtug/flutter-sdk.git • Framework修订版本393e156c23(5小时前),提交时间2022-12-23 20:38:23 -0500 • Engine修订版本e3edfadbda • Dart版本3.0.0(build 3.0.0-63.0.dev) • DevTools版本2.20.0 • Pub下载镜像https://mirror.sjtu.edu.cn/dart-pub • Flutter下载镜像https://mirror.sjtu.edu.cn [✓] Windows版本(已安装Windows 10或更高版本) [✗] Android工具链 - 开发Android设备 ✗ 无法找到Android SDK。 请从相关渠道安装Android Studio,首次启动时它会协助安装Android SDK组件;若SDK在自定义路径,请使用`flutter config --android-sdk`更新路径。 [✓] Chrome - 开发Web应用 • Chrome路径为C:\Program Files\Google\Chrome\Application\chrome.exe [✗] Visual Studio - 开发Windows应用 ✗ 未安装Visual Studio,这是Windows开发必需组件,请安装包含默认组件的“使用C++的桌面开发”工作负载。 [!] Android Studio(未安装) • 未找到Android Studio,请从官方渠道下载并查看安装说明。 [✓] VS Code(版本1.74.2) • VS Code路径为C:\Users\andre\AppData\Local\Programs\Microsoft VS Code • Flutter扩展版本3.56.0 [✓] 已连接设备(3台可用) • Windows(桌面)• windows • windows-x64 • Microsoft Windows [版本10.0.22621.963] • Chrome(Web)• chrome • web-javascript • Google Chrome 108.0.5359.125 • Edge(Web)• edge • web-javascript • Microsoft Edge 108.0.1462.54 [✓] HTTP主机可用性 • 所有必需的HTTP主机均可访问
问题成因
- 预发布版本兼容性冲突:使用的Flutter master频道是未经过充分测试的预览版本,包含Dart 3.0的预发布语法,可能与flutter/gallery项目的本地化生成工具链存在适配问题,导致合成包时触发语法错误检测。
- 本地化资源文件格式错误:项目
l10n目录下的ARB本地化文件可能存在JSON语法问题,比如逗号缺失、引号不匹配、键值对格式错误等,直接导致生成过程报错。 - 缓存文件损坏:Flutter或项目的
.dart_tool缓存目录可能存在损坏文件,导致本地化合成逻辑读取错误信息。
解决方法
切换至稳定版Flutter
运行以下命令切换到稳定频道,规避预览版本的兼容性问题:flutter channel stable flutter upgrade之后重新执行
flutter pub get。清理缓存重新安装依赖
- 执行
flutter clean清理项目缓存 - 删除项目根目录下的
.dart_tool文件夹 - 重新运行
flutter pub get
- 执行
检查并修复本地化文件
打开项目l10n目录下的所有.arb文件,用JSON校验工具检查格式,修复其中的语法错误(如多余逗号、未闭合引号等)。手动生成本地化文件
执行flutter gen-l10n命令,该命令会输出更详细的错误位置信息,方便精准定位问题。同步项目最新代码
拉取flutter/gallery项目的最新代码,确保项目版本与当前Flutter环境适配。
内容的提问来源于stack exchange,提问作者xiaohei_AWM
相关产品推荐
相关产品推荐

