MissingPluginException(在通道plugins.flutter.io/share 上未找到方法共享的实现)

问题描述 投票:0回答:6

我使用时发现错误

flutter_share: ^1.0.2+1

    MissingPluginException(No implementation found for method share on channel plugins.flutter.io/share)


   E/flutter ( 3361): MissingPluginException(No implementation found for method share on channel plugins.flutter.io/share)
E/flutter ( 3361): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:278:7)
E/flutter ( 3361): <asynchronous suspension>
E/flutter ( 3361): #1      Share.share (package:share/share.dart:44:20)
E/flutter ( 3361): #2      SignalCard.build.<anonymous closure> 
flutter dart share
6个回答
23
投票

i 通过我的设备上的

remove
flutter 应用程序和
reinstall
通过 USB 或任何其他媒介来解决它


14
投票

共享插件按预期工作。出现该错误可能是因为添加插件后进行了热重启或热重新加载,而不是完全重启。这意味着插件的平台特定代码未内置到应用程序中。

解决方法:停止应用程序并在添加插件后重新启动。

来源:https://github.com/flutter/website/pull/1038


2
投票

如果您在Web项目中使用共享插件,此错误将永久出现。 如这里所写,您必须使用share_plus插件

但是这个插件(share_plus),无法共享文件

  /// Share files
  @override
  Future<void> shareFiles(
    List<String> paths, {
    List<String>? mimeTypes,
    String? subject,
    String? text,
    Rect? sharePositionOrigin,
  }) {
    throw UnimplementedError('shareFiles() has not been implemented on Web.');
  }

仅通过邮件分享消息(文本+主题)

  // see https://github.com/dart-lang/sdk/issues/43838#issuecomment-823551891
  final uri = Uri(
    scheme: 'mailto',
    query: queryParameters.entries
        .map((e) =>
            '${Uri.encodeComponent(e.key)}=${Uri.encodeComponent(e.value)}')
        .join('&'),
  );

2
投票

当您向包含本机代码的应用程序添加插件时,您必须重新启动应用程序才能加载。所以热重启等是不够的。


1
投票

注意:

flutter_share
share
套餐已停产。

现在我使用官方的

share_plus
插件,你可以在

找到它

https://pub.dev/packages/share_plus

我希望这能解决您的问题。谢谢。


0
投票

如上所述。关闭调试状态,然后重新启动。我可以看到一些要下载的存储库[以详细模式],它可能是来自云的存储库,需要从一开始就重建整个应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.