解决Flutter Conflicting outputs were detected and the build is unable to prompt for permission to r...

本文详细解析了在Flutter项目中使用json_serializable插件时遇到的错误,并提供了两步解决方案,包括如何清理并重新生成代码,避免因提交生成文件导致的编译问题。

PS:今天给Flutter项目做json_serializable序列化,生成.g文件,运行 flutter packages pub run build_runner build 出现了如下报错日志:
在这里插入图片描述
原因如下:
原因其实日志也说明了,在提交代码的时候把flutter packages pub run build_runner build生成的xxxx.g.dart也提了上去。运行flutter packages pub run build_runner build不光生成了xxxx.g.dart。同时还成了一个dart_tool/build目录,入过程所说的只运行app是没有问题的,之前xxxx.g.dart还是可用的。但是再生成新的xxxx.g.dart因为缺少之前生成dart_tool/build目下的文件就会报错。

那么怎么解决呢?莫慌,运行两行命令即可:

flutter packages pub run build_runner clean
flutter packages pub run build_runner build --delete-conflicting-outputs
### 可能的原因与解决方案 FlutterAndroid 上运行时出现 Visual Studio toolchain 错误,通常是因为系统未能正确识别所需的工具链或环境配置问题。以下是可能的原因及解决方法: 1. **缺少必要的组件**:Visual Studio 的 C++ 工具链是构建某些原生库所必需的。如果未安装这些组件,可能会导致此错误[^1]。 确保已安装以下内容: - Visual Studio 2019 或更高版本。 - 在安装过程中选择“使用 C++ 的桌面开发”工作负载。 - 包含 Windows 10 SDK 和 MSVC v142 - VS 2019 C++ x64/x86 构建工具。 2. **环境变量未正确设置**:即使安装了所有必要组件,若系统环境变量未正确配置,也可能引发错误。确保 `PATH` 中包含 Visual Studio 的相关路径[^2]。 检查以下路径是否已添加到环境变量中: ```plaintext C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64 ``` 如果路径不同,请根据实际安装位置调整。 3. **Flutter Doctor 检查**:运行 `flutter doctor` 命令以检查是否有任何依赖项缺失。如果提示需要安装额外的工具或更新现有工具,请按照提示操作[^3]。 示例命令: ```bash flutter doctor -v ``` 此命令会提供详细的诊断信息,包括哪些工具未正确安装或配置。 4. **重新启动系统**:在安装或更新 Visual Studio 后,建议重新启动计算机以确保所有更改生效[^4]。 5. **代码示例:手动设置工具链路径** 如果自动检测失败,可以尝试手动指定工具链路径。以下是一个简单的脚本示例,用于设置环境变量: ```bash set VCToolsInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ set PATH=%VCToolsInstallDir%bin\Hostx64\x64;%PATH% ``` ### 注意事项 - 确保安装的 Visual Studio 版本与 Flutter 兼容。 - 如果问题仍然存在,可以尝试清理缓存并重新配置 Flutter 环境: ```bash flutter clean flutter pub get ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值