Flutter项目Windows运行正常 迁移至Ubuntu时出现路径找不到构建错误
问题根因
报错日志显示导入语句后缀为大写的.Dart:
import 'package:flutter/cupertino.Dart'; import 'package:flutter/services.Dart';
Windows系统文件系统大小写不敏感,大写.Dart和标准小写.dart会被识别为同一个文件,所以Windows环境运行无异常;Ubuntu属于大小写敏感的文件系统,无法匹配到后缀为.Dart的系统文件,进而触发后续所有Flutter内置类找不到的报错。
该问题由你项目依赖的advance_image_picker 0.0.5+3版本源码不规范导致,和你自身的业务代码无关,所以替换lib目录、执行pub clean等操作无法解决问题。
解决方案
- 方案1:升级依赖版本。在pubspec.yaml中将
advance_image_picker升级到最新正式版,该包后续版本已经修复了导入后缀大写的问题,修改完成后执行flutter pub get重新拉取依赖再编译即可。 - 方案2:若因业务兼容性要求不能升级版本,可手动修复缓存文件:找到pub缓存中
advance_image_picker-0.0.5+3/lib/widgets/portrait_mode_mixin.dart文件,将两个导入语句的后缀.Dart改为小写.dart,保存后重新编译即可。 - 方案3:使用依赖覆盖临时修复:将修复后的
advance_image_picker包放到本地项目目录,在pubspec.yaml中添加如下配置:
配置完成后执行dependency_overrides: advance_image_picker: path: ./本地修复后的包路径flutter pub get重新编译即可。
内容的提问来源于stack exchange,提问作者Harsh Kashyap
相关产品推荐
相关产品推荐

