flutter_map:^0.13.1+SDK>=2.18.5<3.0.0遇DecoderCallback未找到错误求助
解决flutter_map 0.13.1在Flutter SDK 2.18.5下的DecoderCallback缺失问题
临时快速修复(直接修改缓存文件)
- 定位到报错文件:
%LOCALAPPDATA%\Pub\Cache\hosted\pub.dev\flutter_map-0.13.1\lib\src\layer\tile_provider\network_image_with_retry.dart - 打开文件,在顶部导入区域添加如下代码:
import 'package:flutter/src/painting/image_provider.dart'; - 重新执行编译命令,错误即可消除。
持久化修复(避免重复修改)
如果不想每次执行pub get后都手动修改缓存文件,可通过本地patch实现持久化修复:
- 在项目根目录创建
patches文件夹,新建flutter_map_decoder_callback_fix.patch文件,内容如下:diff --git a/lib/src/layer/tile_provider/network_image_with_retry.dart b/lib/src/layer/tile_provider/network_image_with_retry.dart index 2f9a5d3..8d7b1c4 100644 --- a/lib/src/layer/tile_provider/network_image_with_retry.dart +++ b/lib/src/layer/tile_provider/network_image_with_retry.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'package:flutter/src/painting/image_provider.dart'; import 'dart:typed_data'; import 'dart:ui' as ui; import 'package:flutter/foundation.dart'; - 进入pub缓存的flutter_map目录,通过Git Bash或WSL执行patch命令:
patch -p1 < /path/to/your/project/patches/flutter_map_decoder_callback_fix.patch - 若团队协作,同步该patch文件及操作步骤给其他成员,确保环境一致性。
问题原因
flutter_map 0.13.1发布时依赖的Flutter版本较低,而在Flutter 2.18.5中,DecoderCallback类型的定义位置发生了变化,原代码未正确导入该类型所在文件,导致编译时无法识别。添加对应导入语句即可让编译器找到该类型,解决报错。
内容的提问来源于stack exchange,提问作者Amine Daikha
相关产品推荐
相关产品推荐

