在通道 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 clean
、flutter 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 的实现的主要内容,如果未能解决你的问题,请参考以下文章