You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter编译报错:回调函数参数类型与目标参数类型不匹配

解决方法

这个错误是因为你传入FlutterDownloader.registerCallback的回调函数签名和插件要求的不匹配:插件期望的是void Function(String, int, int)类型的回调,但你提供的回调是void Function(String, DownloadTaskStatus, int)类型。

具体修正步骤:

  1. 调整回调函数的参数类型与顺序
    按照插件要求,回调的正确签名应该是第一个参数为任务ID(String),第二个为状态码(int),第三个为进度(int)。你需要将downloadCallback修改为:

    void downloadCallback(String taskId, int statusCode, int progress) {
      // 将int类型的状态码转换为DownloadTaskStatus枚举
      DownloadTaskStatus status = DownloadTaskStatus.values[statusCode];
      // 这里执行你的业务逻辑,比如通知DownloadManager的处理逻辑
    }
    
  2. 适配自定义回调typedef(如果需要)
    如果你需要使用自己定义的DownloadManagerCallback,可以在上述回调中转换参数后调用:

    // 假设你有一个类内部的回调处理方法
    void _handleDownloadStatus(DownloadTaskStatus? status, int progress, String? taskId) {
      // 你的业务处理逻辑
    }
    
    void downloadCallback(String taskId, int statusCode, int progress) {
      DownloadTaskStatus status = DownloadTaskStatus.values[statusCode];
      _handleDownloadStatus(status, progress, taskId);
    }
    
  3. 确认FlutterDownloader版本兼容性
    检查pubspec.yaml中flutter_downloader的版本,确保它与Flutter 3.3.2、Dart 2.18.1兼容。如果版本不匹配,建议调整到适配的版本。

内容的提问来源于stack exchange,提问作者mo.aelmohaimen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:32:19