我正在我的应用程序中实现 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 clean
此后我的 Android 模拟器开始正常工作。
当您添加新的依赖项并收到此错误时,您应该停止应用程序并再次从冷状态运行它。热重启不起作用。
首先,确保清理你的 flutter 项目
flutter clean
然后在Android studio中, 文件 > 失效并重新启动缓存
flutter run
只需从模拟器中卸载应用程序并通过
flutter clean
清理项目,然后 flutter run
我也有同样的问题
对于任何碰巧遇到此问题的人...只需停止该应用程序,然后再次运行它
只是一个简单的“关闭并再次打开!”
我面临着同样的问题,但在深入研究后,上面提到的答案都没有帮助解决这个问题,我发现 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"
}
对于那些在 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"));
当您向 pubsec yaml 文件添加依赖项并热刷新应用程序时,会发生这种情况。您应该重新构建/重新运行该应用程序,然后它就可以正常工作了。
删除
flutter_facebook_auth
软件包后,运行flutter clean
、flutter pub get
并运行应用程序,它将正常工作
自最新更新以来,由于某些原因,静态方法 pickImage 不可用。 为此,您必须调用方法 getImage(source: ImageSource)
ImagePicker imagePicker = ImagePicker();
final imageFile = await imagePicker.getImage(source: ImageSource.camera);
安卓#
API < 29
无需配置 - 该插件应该开箱即用。
API 29+
将 android:requestLegacyExternalStorage="true" 作为属性添加到 AndroidManifest.xml 中的标记中。对于面向 Android Q 的应用程序,该属性默认为 false。
之后:
flutter clean
flutter pub get
flutter run
你又开始编码了......
如果您使用的是flutter_facebook_auth,则必须按照文档中所示进行配置(https://facebook.meedu.app/#/android),否则image_picker将无法正常工作
这不是问题,只是当您添加新的依赖项并收到此错误时,您应该停止应用程序并再次运行它。热重启将不起作用。
确保您在 AndroidManifest.xml 中授予使用权限
android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
跑步之后
flutter clean
flutter pub get
flutter run
您是从相机或图库中选择图像吗?如果你想从相机中选取图像,你需要使用真实的设备,模拟有时会出错,请确保你给出来源:
var image = await ImagePicker.pickImage(source: ImageSource.gallery);
尝试添加:
导入'dart:异步';
扑扑干净
尝试更改 image_picker 版本: image_picker: ^0.6.0+9
已经遵循所有回复,但在我的情况下仍然没有解决。仍然抛出“在通道plugins.flutter.io/image_picker上找不到方法pickImage的实现”
我也有同样的问题。 我的解决方案是删除另一个插件:
flutter-facebook-auth
。
另外,我在这里找到了它:github.com/flutter/flutter/issues/72898
内容丰富的评论:
无论如何,当代码部分中未使用的某个插件使应用程序崩溃时,情况真的很糟糕,并且调试告诉您问题出在另一个插件上。
只需停止您的项目并运行即可。会起作用的
我刚刚重新启动我的应用程序,错误就消失了。我会建议你也这样做。
就我而言,flutter clean 对我的应用程序不起作用。
我通过从模拟器/设备卸载我的应用程序解决了我的问题,然后重建我的应用程序,错误消失了。
修复起来很简单。终止该进程,然后重新启动。要在 vscode 上终止:在 vscode 上打开终端并按“ctr + c”,然后按“y”并按“enter”。现在重新启动您的项目。希望它能正常工作。检查一下,如果不起作用,请评论我。
更新依赖关系解决了我的错误。