Flutter网络图片无法上传,编译Debug版本触发FileSystemException错误
错误日志
Target debug_android_application failed: FileSystemException: Exists failed, path = 'E:\flutter practice\flutter_practice\images\https:\mofa.gov.pk\wp-content\uploads\2019\11' (OS Error: 文件名、目录名或卷标语法不正确。, errno = 123)
FAILURE: 构建失败,出现异常。
位置:
Script 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1201问题所在:
任务 ':app:compileFlutterBuildDebug' 执行失败。进程 'command 'C:\src\flutter\bin\flutter.bat'' 以非零退出值1结束
- 尝试:
使用 --stacktrace 选项获取堆栈跟踪。
使用 --info 或 --debug 选项获取更多日志输出。
使用 --scan 选项获取完整洞察。BUILD FAILED in 5s
Exception: Gradle任务 assembleDebug 以退出代码1失败
代码示例
import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( title: 'my app', home: Scaffold( appBar: AppBar(title: Text('this is my app bar title'),), body: Image.network("https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png"), ) ), ); }
问题分析与解决方法
核心原因
构建时Flutter错误地将网络URL解析为本地文件路径,大概率是pubspec.yaml的资源配置有误,或是缓存异常导致路径解析混乱。
解决步骤
修正pubspec.yaml的assets配置
打开项目根目录的pubspec.yaml,检查flutter下的assets节点:- 移除所有网络URL,只保留本地图片的相对路径
- 确保路径格式正确,缩进符合YAML规范(比如用2个空格缩进)
示例正确配置:
flutter: assets: - images/local_image.png清理缓存并重建项目
在终端依次执行命令:flutter clean flutter pub get flutter run检查图片引用方式
确认项目中所有图片引用:- 网络图片用
Image.network() - 本地图片用
Image.asset()
避免混用导致路径解析错误。
- 网络图片用
内容的提问来源于stack exchange,提问作者irfan habib

