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

时间:2019-07-23 11:24:20

标签: flutter dart flutter-layout flutter-dependencies

我正在我的应用程序中实现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>

16 个答案:

答案 0 :(得分:4)

我遇到了同样的问题

对于任何碰巧遇到这种情况的人...只需停止应用程序,然后再次运行它

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

答案 1 :(得分:2)

我正面临着同样的问题,但是上面提到的所有答案在挖掘之后都无法解决这个问题,我发现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"
    }

答案 2 :(得分:1)

首先,请确保清理抖动项目

flutter clean

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

flutter run

答案 3 :(得分:1)

只需先flutter clean然后flutter run从模拟器中卸载应用程序并清除项目,即可

答案 4 :(得分:0)

您要从相机或图库中挑选图像吗?如果您想使用真实设备从相机中拾取图像,有时仿真会出错,请确保您提供了源:

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

答案 5 :(得分:0)

添加新的依赖项时,如果出现此错误,则应停止应用程序并从冷状态再次运行。热重启将不起作用。

答案 6 :(得分:0)

我只需运行以下命令即可解决问题:

flutter clean 

此后,我的Android模拟器开始正常运行。

答案 7 :(得分:0)

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

由于某种原因,尚未自动注册image_picker插件

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

  1. import io.flutter.plugins.imagepicker.ImagePickerPlugin;

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

答案 8 :(得分:0)

尝试添加:

导入'dart:async';

干净整洁

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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

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

答案 12 :(得分:0)

安卓#

API < 29

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

API 29+

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

在那之后:

flutter clean
flutter pub get
flutter run

你又开始编码了...

答案 13 :(得分:0)

已按照所有回复进行操作,但在我的情况下仍未解决。仍然抛出“在通道 plugins.flutter.io/image_picker 上找不到方法 pickImage 的实现”

答案 14 :(得分:0)

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

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

真正有用的评论:

<块引用>

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

答案 15 :(得分:-2)

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