Android Studio中Flutter应用构建报错:DecoderCallback类型未找到
问题
在Android Studio中运行Flutter应用时,cached_network_image、flutter_blurhash、flutter_layout_grid等多个包均提示找不到DecoderCallback类型。
已尝试以下修复步骤但未解决:
- 确认使用最新版本的Flutter
- 确认使用报错包的最新版本
- 清除缓存包并重新安装
- 重建项目
错误日志:
Launching lib\main.dart on Android SDK built for x86 in debug mode... Running Gradle task 'assembleDebug'... ../../../../AppData/Local/Pub/Cache/hosted/pub.dev/cached_network_image-3.2.3/lib/src/image_provider/cached_network_image_provider.dart:78:54: Error: Type 'DecoderCallback' not found. image_provider.CachedNetworkImageProvider key, DecoderCallback decode) { ^^^^^^^^^^^^^^^ FAILURE: Build failed with an exception. * Where: Script 'D:\dev\flutter\flutter\packages\flutter_tools\gradle\src\main\groovy\flutter.groovy' line: 1350 * What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'. > Process 'command 'D:\dev\flutter\flutter\bin\flutter.bat'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 38s Exception: Gradle task assembleDebug failed with exit code 1
解决方法
1. 检查Flutter SDK与依赖包的版本兼容性
DecoderCallback是Flutter SDK内置类型,部分旧版依赖包仅适配特定范围的Flutter版本。若你的Flutter版本过高,未及时更新的包可能出现类型找不到的问题:
- 尝试降级Flutter到上一个稳定小版本(比如当前稳定版为3.13.x,可切换到3.10.x),再重新安装依赖
- 查看报错包的pub.dev页面,确认其支持的最低Flutter版本,确保SDK版本符合要求
2. 手动指定依赖包的兼容版本
若最新版依赖包与你的Flutter版本不兼容,可在pubspec.yaml中指定该包的特定兼容版本,示例如下:
dependencies: cached_network_image: ^3.3.0 flutter_blurhash: ^0.7.0 flutter_layout_grid: ^2.0.0
修改后执行flutter pub get重新拉取依赖。
3. 清理深层缓存
执行以下命令彻底清理各类缓存:
- 清理Flutter项目缓存:
flutter clean,同时删除项目根目录下的.dart_tool文件夹 - 清理Pub全局缓存:
dart pub cache clean - 清理Gradle缓存:删除项目内
android/.gradle文件夹,以及用户目录下的.gradle缓存文件夹(如C:\Users\<你的用户名>\.gradle)
完成后重新执行flutter pub get和flutter run。
4. 检查导入与命名冲突
排查项目中是否存在自定义的DecoderCallback类型或导入冲突:
- 查看报错文件的导入语句,确保
package:flutter/src/painting/image_provider.dart被正确导入 - 确认项目中没有同名类或typedef覆盖系统的
DecoderCallback
5. 重新克隆项目构建
若以上方法均无效,可能是项目文件损坏,尝试重新克隆项目代码、重新配置依赖后再构建。
内容的提问来源于stack exchange,提问作者zinab lamiri
相关产品推荐
相关产品推荐

