【问题标题】:[Flutter]: Unhandled Exception: MissingPluginException(No implementation found for method saveImageToGallery on channel image_gallery_saver)[颤振]:未处理的异常:MissingPluginException(在通道 image_gallery_saver 上找不到方法 saveImageToGallery 的实现)
【发布时间】:2021-12-21 07:35:30
【问题描述】:

问题

我试图将小部件图像存储到手机图库中,因此我实现了image_gallery_saver 插件。不幸的是,当我调用此方法时,我不断收到以下错误:

Unhandled Exception: MissingPluginException(No implementation found for method saveImageToGallery on channel image_gallery_saver)#0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:154:7)
<asynchronous suspension>
#1      ImageGallerySaver.saveImage (package:image_gallery_saver/image_gallery_saver.dart:20:9)
<asynchronous suspension>
#2      InitiatePaymentState.saveImagetoGallery (package:scambio/initiate_payment.dart:611:20)
<asynchronous suspension>
#3      InitiatePaymentState.build.<anonymous closure> (package:scambio/initiate_payment.dart:297:21)
<asynchronous suspension>

我的代码:

  • 插件的调用位置:
Future<String> saveImagetoGallery(Uint8List image) async{
    await [Permission.storage].request();
    final name = 'StasticQRcode_$getVendorShopName()_$_amount';
    final result = await ImageGallerySaver.saveImage(image, quality: 100, name: name);
    return result['filePath'];
  }
  • pubspec.yaml:
dependencies:
  flutter:
    sdk: flutter
  http :
  intl:
  cupertino_icons: ^1.0.3
  pin_code_fields: ^7.3.0
  flutter_secure_storage: ^4.2.1
  iban: ^1.0.1
  sqflite: ^2.0.0+4
  path: ^1.6.4
  webview_flutter : ^2.3.0
  qr_flutter: ^4.0.0 #qrcode generation
  qrcode: ^1.0.4 #qrcode scanning
  url_launcher: ^6.0.12 #launching url
  uuid: ^3.0.5
  encrypt: ^5.0.1
  simple_rsa: ^0.0.5
  crypto: ^3.0.1
  crypto_keys: ^0.3.0
  pointycastle: ^3.3.4
  # capture screenshot
  screenshot: ^1.2.3
  #image save
  image_gallery_saver: ^1.7.1
  permission_handler:
  • info.plist
<dict>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>This app needs to use Photos</string>
<...>
  • AndroidManifest.xml
     <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <application
        android:name="${applicationName}"
        android:label="scambio"
        android:requestLegacyExternalStorage="true"
        android:icon="@mipmap/ic_launcher">

使用的解决方案

我尝试了以下所有解决方案,但都没有奏效。

  • 重新安装应用程序。
  • 在构建 gradle 中添加 shrinkResources false 和 minifyEnabled false。
  • flutter clean 然后安装 pod。

PS。最近升级了flutter,升级后实现的插件好像都不能用了。会不会是这个插件不起作用的原因?

所有建议将不胜感激!

【问题讨论】:

  • 授权了吗?

标签: flutter android-studio dart plugins


【解决方案1】:

您评论了权限请求。我认为您没有授予权限。

我已经检查了插件。我认为您应该重新访问该网站。 https://pub.dev/packages/image_gallery_saver

iOS

您的项目需要快速创建。将以下键添加到您的 Info.plist 文件中,该文件位于

NSPhotoLibraryAddUsageDescription 

说明您的应用需要照片库权限的原因。这在可视化编辑器中称为隐私 - 照片库添加使用说明

安卓

您需要申请存储权限才能将图像保存到图库。您可以使用 flutter_permission_handler 处理存储权限。在 Android 版本 10 中,打开清单文件并将这一行添加到您的应用程序标签中

【讨论】:

  • 感谢您的回答!即使我添加了这些参数以获取权限,它也不起作用。我最近升级了我的flutter,之后我实现的所有插件似乎都不起作用并显示错误。你觉得跟flutter升级有关系吗?
  • 你是用flutter升级命令还是下载了新版本?你用过flutter clean吗?
  • 我使用了flutter upgrade 命令,我做了flutter clean,然后pod install 等等。
  • 不,因为我需要使用saveImage插件,它提供了同样的问题。 Unhandled Exception: MissingPluginException(No implementation found for method saveImageToGallery on channel image_gallery_saver)
猜你喜欢
  • 1970-01-01
  • 2020-04-20
  • 2020-11-13
  • 1970-01-01
  • 1970-01-01
  • 2022-07-22
  • 2022-07-24
  • 2021-07-10
  • 2020-05-29
相关资源
最近更新 更多