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

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

我正在我的应用程序中实现 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>
flutter dart flutter-layout flutter-dependencies
24个回答
54
投票

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

flutter clean 

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


16
投票

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


12
投票

首先,确保清理你的 flutter 项目

flutter clean

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

flutter run

7
投票

只需从模拟器中卸载应用程序并通过

flutter clean
清理项目,然后
flutter run


6
投票

我也有同样的问题

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

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


3
投票

我面临着同样的问题,但在深入研究后,上面提到的答案都没有帮助解决这个问题,我发现 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
投票

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

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

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

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

  2. 将此行粘贴到方法 registerWith

    ImagePickerPlugin.registerWith(registry.registrarFor("io.flutter.plugins.imagepicker.ImagePickerPlugin"));


2
投票

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


2
投票

删除

flutter_facebook_auth
软件包后,运行
flutter clean
flutter pub get
并运行应用程序,它将正常工作


1
投票

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

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

1
投票

安卓#

API < 29

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

API 29+

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

之后:

flutter clean
flutter pub get
flutter run

你又开始编码了......


1
投票

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

Taken from the flutter_facebook_auth documentation


1
投票

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


1
投票

确保您在 AndroidManifest.xml 中授予使用权限

android/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

跑步之后

flutter clean
flutter pub get
flutter run

0
投票

您是从相机或图库中选择图像吗?如果你想从相机中选取图像,你需要使用真实的设备,模拟有时会出错,请确保你给出来源:

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

0
投票

尝试添加:

导入'dart:异步';

扑扑干净


0
投票

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


0
投票

已经遵循所有回复,但在我的情况下仍然没有解决。仍然抛出“在通道plugins.flutter.io/image_picker上找不到方法pickImage的实现”


0
投票

我也有同样的问题。 我的解决方案是删除另一个插件:

flutter-facebook-auth

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

内容丰富的评论:

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


0
投票

只需停止您的项目并运行即可。会起作用的


0
投票

我刚刚重新启动我的应用程序,错误就消失了。我会建议你也这样做。


0
投票

就我而言,flutter clean 对我的应用程序不起作用

我通过从模拟器/设备卸载我的应用程序解决了我的问题,然后重建我的应用程序,错误消失了。


-1
投票

修复起来很简单。终止该进程,然后重新启动。要在 vscode 上终止:在 vscode 上打开终端并按“ctr + c”,然后按“y”并按“enter”。现在重新启动您的项目。希望它能正常工作。检查一下,如果不起作用,请评论我。


-2
投票

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

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