Flutter:错误:MissingPluginException(在通道 plugins.flutter.io/path_provider 上找不到方法 getTemporaryDirectory

Posted

技术标签:

【中文标题】Flutter:错误:MissingPluginException(在通道 plugins.flutter.io/path_provider 上找不到方法 getTemporaryDirectory 的实现)【英文标题】:Flutter: Error: MissingPluginException(No implementation found for method getTemporaryDirectory on channel plugins.flutter.io/path_provider) 【发布时间】:2021-04-23 18:03:42 【问题描述】:

我正在使用Flutter-web,我想导出一个 pdf。我正在使用pdf 包,我正在尝试从他们的文档中实现一个简单的示例。更具体地说,我有一个名为export_pdf.dart 的文件,其中的代码如下。

import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart';
import 'package:universal_io/io.dart';
import 'package:path_provider/path_provider.dart';

exportPdf() async 
  final pdf = Document();

  pdf.addPage(Page(
      pageFormat: PdfPageFormat.a4,
      build: (Context context) 
        return Center(
          child: Text("Hello World"),
        ); // Center
      )); // Page

  final output = await getTemporaryDirectory();
  final file = File("$output.path/example.pdf");
  await file.writeAsBytes(await pdf.save());

当我通过单击按钮调用exportPdf() 函数时,出现以下错误。

未捕获(承诺)错误:MissingPluginException(无实现 在通道上找到方法 getTemporaryDirectory plugins.flutter.io/path_provider)

我一直在寻找这个问题很长时间,但没有解决这个问题。

即使 path_provider 包被导入,getTemporaryDirectory() 也不会被调用,就像它不存在一样。

我还需要提到我使用的是universal_io,而不是dart:io,因为我使用的是flutter_web

这个错误出现在我正在调用的每个函数中,并且存在于path_provider/path_provider.dart 文件中。我还在path_provider/path_provider.dart 中添加了一个简单的打印功能,但我收到一个错误,提示找不到该方法。

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

运行这些命令

flutter clean
flutter pub get
flutter run

确保在第一个命令之后,build 文件夹被删除。

【讨论】:

我跑了flutter clean,构建文件夹确实被删除了,然后我跑了flutter pub get,最后跑了flutter run。但是仍然会弹出相同的错误。【参考方案2】:

发现目前这个包不支持网页保存文件,建议使用打印插件打印或分享文件。

【讨论】:

以上是关于Flutter:错误:MissingPluginException(在通道 plugins.flutter.io/path_provider 上找不到方法 getTemporaryDirectory 的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:每个flutter命令都会出现这个错误

Flutter 构建 iOS 错误:在 iOS 设备中构建 Flutter 应用程序时遇到错误

我在安装flutter时遇到了一些错误

使用 flutter_twitter 包的 Flutter Web Twitter 登录错误。我错过了啥?

Flutter错误信息搜集

Flutter:无法找到“flutter_assets”错误的资产路径