在通道 plugins.flutter.io/image_picke 上找不到方法 pickImage 的实现

Posted

技术标签:

【中文标题】在通道 plugins.flutter.io/image_picke 上找不到方法 pickImage 的实现【英文标题】:No implementation found for method pickImage on channel plugins.flutter.io/image_picke 【发布时间】:2019-12-01 10:29:32 【问题描述】:

我正在我的应用中实现 image_picker。这没有显示任何警告或消息,但是当我在 android 模拟器中运行它时,它会在控制台中显示一个错误:

[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method pickImage on channel plugins.flutter.io/image_picker)
E/flutter ( 5074): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:7)
E/flutter ( 5074): <asynchronous suspension>
E/flutter ( 5074): #1      ImagePicker.pickImage (package:image_picker/image_picker.dart:53:40)
E/flutter ( 5074): <asynchronous suspension>

【问题讨论】:

你尝试过热重载吗? 【参考方案1】:

去掉flutter_facebook_auth包后,运行flutter cleanflutter pub get并运行应用程序,就可以正常工作了

【讨论】:

【参考方案2】:

如果您使用的是flutter_facebook_auth,则必须按照文档(https://facebook.meedu.app/#/android)中的说明进行配置,否则 image_picker 将无法正常工作

Taken from the flutter_facebook_auth documentation

【讨论】:

【参考方案3】:

我遇到了同样的问题。 我的解决方案是删除另一个插件:flutter-facebook-auth

另外,我在这里找到它:github.com/flutter/flutter/issues/72898

内容丰富的评论:

无论如何,当代码部分中未使用的某些插件使应用程序崩溃时,这是非常糟糕的情况,并且调试告诉您问题出在另一个插件上。

【讨论】:

【参考方案4】:

已关注所有回复,但在我的情况下仍未解决。仍然抛出“No implementation found for method pickImage on channel plugins.flutter.io/image_picker”

【讨论】:

面临此类问题的最新版本。安卓运行良好。但在 ios 中面临这个问题。你找到解决办法了吗? 升级 Flutter 版本后,我在 Android 上遇到了这些问题。我尝试的解决方案是降级 Flutter,是的,它可以工作。【参考方案5】:

安卓#

API

无需配置 - 插件应该开箱即用。

API 29+

将 android:requestLegacyExternalStorage="true" 作为属性添加到 AndroidManifest.xml 中的标记。在面向 Android Q 的应用上,该属性默认为 false。

之后:

flutter clean
flutter pub get
flutter run

你又开始编码了……

【讨论】:

【参考方案6】:

更新依赖解决了我的错误。

【讨论】:

【参考方案7】:

自最新更新以来,静态方法 pickImage 由于某些原因不可用。 为此,您必须调用 methd getImage(source: ImageSource)

    ImagePicker imagePicker = ImagePicker();
final imageFile = await imagePicker.getImage(source: ImageSource.camera);

【讨论】:

【参考方案8】:

我遇到了同样的问题

对于碰巧遇到此问题的任何人...只需停止应用程序,然后再次运行它

只是一个简单的“关闭再打开!”

【讨论】:

【参考方案9】:

只需从您的模拟器中卸载应用程序并通过flutter clean 清理项目然后flutter run

【讨论】:

【参考方案10】:

首先,确保你清理了你的 Flutter 项目

flutter clean

然后在 Android 工作室中, 文件 > 无效并重新启动缓存

flutter run

【讨论】:

【参考方案11】:

尝试更改 image_picker 版本:image_picker: ^0.6.0+9

【讨论】:

【参考方案12】:

当您将依赖项添加到 pubsec yaml 文件并热刷新应用程序时,会发生这种情况。您应该重新构建/重新运行该应用程序,然后它才能正常工作。

【讨论】:

【参考方案13】:

尝试添加:

导入 'dart:async';

颤抖干净

【讨论】:

【参考方案14】:

我面临同样的问题,但在深入研究后,上述答案都没有帮助解决这个问题,我发现 android 库所需的 minSdkVersion 高于 19,所以转到 android-> app-> build.gradle 将 minSdkVersion 更改为 19 并从冷启动运行应用。

defaultConfig 
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "you package name"
        minSdkVersion 19   // <--here is the changes 
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    

【讨论】:

【参考方案15】:

对于那些在 Android 上仍有问题的人, 这个解决了我的..

由于某种原因,image_picker 插件没有自动注册

转到 Android > app > main > java> io> flutter > plugins 并编辑 GeneratedPluginRegistrant.java

    import io.flutter.plugins.imagepicker.ImagePickerPlugin;

    将此行粘贴到方法 registerWith ImagePickerPlugin.registerWith(registry.registrarFor("io.flutter.plugins.imagepicker.ImagePickerPlugin"));

【讨论】:

浏览了所有的解决方案,这个似乎是作为一些开箱即用的解决方案脱颖而出的解决方案,也尝试了下面的@daljit-singh 的解决方案,但它也没有奏效。有没有其他办法解决?【参考方案16】:

我通过简单地运行以下命令解决了我的问题:

flutter clean 

在此之后,我的 Android 模拟器开始正常工作。

【讨论】:

运行后:flutter pub get 【参考方案17】:

当您添加新的依赖项并收到此错误时,您应该停止应用程序并再次从冷态运行它。热重启将不起作用。

【讨论】:

【参考方案18】:

您是从相机还是图库中挑选图像?如果您想从需要使用真实设备的相机中挑选图像,模拟有时会出错,请确保您提供来源:

var image = await ImagePicker.pickImage(source: ImageSource.gallery);

【讨论】:

以上是关于在通道 plugins.flutter.io/image_picke 上找不到方法 pickImage 的实现的主要内容,如果未能解决你的问题,请参考以下文章

在通道变量初始化后建立缓冲通道

如何在png里删除alpha通道

先建立控制通道,再建立数据通道会引起的问题。

无法装入传输通道

信号 goroutine 在通道关闭时停止

如何在不更改其他通道的情况下有效地将 cv::Mat 的给定通道设置为给定值?