【问题标题】:No implementation found for method pickImage on channel plugins.flutter.io/image_picke在通道 plugins.flutter.io/image_picke 上找不到方法 pickImage 的实现
【发布时间】: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>

【问题讨论】:

  • 你尝试过热重载吗?

标签: flutter dart flutter-layout flutter-dependencies


【解决方案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

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

                            2. 将此行粘贴到方法 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);
                              

                              【讨论】:

                                猜你喜欢
                                • 2021-02-01
                                • 2021-10-06
                                • 2020-07-16
                                • 2020-01-24
                                • 2022-10-22
                                • 2020-12-09
                                • 2019-09-06
                                • 2021-05-18
                                相关资源
                                最近更新 更多