【问题标题】:Flutter: Error: MissingPluginException(No implementation found for method getTemporaryDirectory on channel plugins.flutter.io/path_provider)Flutter:错误:MissingPluginException(在通道 plugins.flutter.io/path_provider 上找不到方法 getTemporaryDirectory 的实现)
【发布时间】: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 中添加了一个简单的打印功能,但我收到一个错误,提示找不到该方法。

感谢您的宝贵时间。

【问题讨论】:

    标签: flutter dart flutter-web


    【解决方案1】:

    运行这些命令

    flutter clean
    flutter pub get
    flutter run
    

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

    【讨论】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-01-23
      • 2021-09-12
      • 2021-03-30
      • 2021-07-18
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 2020-01-24
      • 2022-08-18
      相关资源
      最近更新 更多