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

Flutter Windows端printing包printPdf报MissingPluginException问题

核心报错

MissingPluginException(No implementation found for method printPdf on channel net.nfet.printing)

问题场景

开发面向门店的Windows桌面端POS应用,需要实现文档、条码打印功能,已使用pdf包完成PDF生成,在Windows平台安装、调用printing包时触发上述报错。
按照官方文档说明,需要提前在CMake配置中添加如下代码:

set(PDFIUM_VERSION "4929" CACHE STRING "" FORCE)
set(PDFIUM_ARCH "x64" CACHE STRING "" FORCE)

实际配置过程中遇到以下问题:

  • Flutter项目windows目录下存在3个同名CMakeLists.txt文件,路径分别为windows\CMakeLists.txt、windows\runner\CMakeLists.txt、windows\flutter\CMakeLists.txt,无法确定配置的正确写入位置
  • 尝试将配置分别添加到上述3个文件中,均未生效
  • 运行代码调用打印功能时始终抛出开头提到的MissingPluginException异常
  • 目标需求为实现已生成PDF的正常打印
解决步骤
  1. 确定配置写入位置:上述PDFIUM版本、架构配置必须写入项目根目录下的windows/CMakeLists.txt文件最顶部,即所有Flutter相关引入、子目录添加逻辑之前,写入子目录下的CMake文件、或者写在该文件其他逻辑段之后,都不会被printing插件的构建脚本识别。
  2. 清理全量构建缓存:配置修改完成后,不能直接热重载/热重启,必须执行以下命令清理旧构建产物:
    flutter clean
    flutter pub get
    
    关闭所有正在运行的调试进程、Visual Studio CMake缓存进程后,重新全量编译运行Windows端程序。
  3. 兼容性校验:
    • 确认Windows端编译目标架构为x64,printing插件Windows端依赖的PDFIUM暂不支持x86架构
    • 确认pubspec.yaml中使用的printing版本与当前Flutter稳定版本兼容,不要使用过旧的插件版本
    • 首次全量编译时保持网络通畅,构建流程会自动拉取对应版本的PDFIUM二进制依赖,依赖拉取失败也会导致插件无法正常注册,触发通道找不到实现的报错。

内容的提问来源于stack exchange,提问作者Uktamjon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:15:32