未处理的异常:MissingPluginException:未在通道上找到方法 xx 的实现
Unhandled Exception: MissingPluginException: No implementation found for method xx on channel
我遇到一个错误,我在某个日期后实现的所有插件都将无法运行。我尝试了互联网上的所有方法(重新安装、flutter clean、重建...),但 none 都有效,所以也许我处在一个非常奇怪的情况下。
这是我的 yaml 文件:
dependencies:
flutter:
sdk: flutter
http :
intl:
cupertino_icons: ^1.0.3
flutter_svg: ^0.23.0+1
pin_code_fields: ^7.3.0
flutter_secure_storage: ^4.2.1
iban: ^1.0.1
sqflite: ^2.0.0+4
path: ^1.6.4
webview_flutter : ^2.3.0
qr_flutter: ^4.0.0 #qrcode generation
qrcode_flutter: ^2.0.1
url_launcher: ^6.0.12 #launching url
uuid: ^3.0.5
encrypt: ^5.0.1
simple_rsa: ^0.0.5
crypto: ^3.0.1
crypto_keys: ^0.3.0
dio: ^4.0.1
pointycastle: ^3.3.4
//from here, bottom plugins don't work
screenshot: ^1.2.3
image_gallery_saver: ^1.7.1
permission_handler: ^8.2.6
email_validator: ^2.0.1 //surprisingly email_validator works
share_plus: ^3.0.4
扑博士:
[✓] Flutter (Channel master, 2.6.0-12.0.pre.837, on macOS 12.0.1 21A559 darwin-x64, locale zh-Hans-FR)
• Flutter version 2.6.0-12.0.pre.837 at /Users/liuqishu/Development/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 341e771b12 (5 days ago), 2021-11-24 19:33:04 -0500
• Engine revision e99aba6a38
• Dart version 2.16.0 (build 2.16.0-46.0.dev)
• DevTools version 2.8.0
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Users/liuqishu/Library/Android/sdk
• Platform android-30, build-tools 30.0.3
• Java binary at: /Applications/Android Studio 4.2
Preview.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.11.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio
• Android Studio at /Applications/Android Studio 4.2 Preview.app/Contents
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
[✓] VS Code (version 1.62.3)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.28.0
[✓] Connected device (3 available)
• Qishu’s iPhone (mobile) • 00008101-0011358401E2001E • ios • iOS 15.1.1
19B81
• iPhone 13 (mobile) • 56F3E614-0B41-4F96-B7B5-FEE3D5E63006 • ios •
com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
• Chrome (web) • chrome • web-javascript • Google Chrome
96.0.4664.55
• No issues found!
错误日志:(以插件share为例,其实我现在实现的任何插件都会报同样的错误)
[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method share on channel dev.fluttercommunity.plus/share)
#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:175:7)
<asynchronous suspension>
我们将不胜感激所有建议。
好吧,我终于想通了这个问题,我不确定我是否处于非常特殊的情况下,但无论如何这是解决方案:
每次我构建应用程序时,即使插件会正确安装,但插件的路径在 GeneratedPluginRegistrant.m
中没有正确导入。所以手动导入后就可以了!
ps:插件路径:/your_project_folder/ios/Pods/Target Support Files
如何在 GeneratedPluginRegistrant.m
中手动添加插件的示例:
#if __has_include(<qrcode/QrcodePlugin.h>)
#import <qrcode/QrcodePlugin.h>
#else
@import qrcode_flutter;
#endif
也将其添加到此文件的底部,在 resgistry
方法中:
[QrcodeFlutterPlugin registerWithRegistrar:[registry registrarForPlugin:@"QrcodeFlutterPlugin"]];
我遇到一个错误,我在某个日期后实现的所有插件都将无法运行。我尝试了互联网上的所有方法(重新安装、flutter clean、重建...),但 none 都有效,所以也许我处在一个非常奇怪的情况下。
这是我的 yaml 文件:
dependencies:
flutter:
sdk: flutter
http :
intl:
cupertino_icons: ^1.0.3
flutter_svg: ^0.23.0+1
pin_code_fields: ^7.3.0
flutter_secure_storage: ^4.2.1
iban: ^1.0.1
sqflite: ^2.0.0+4
path: ^1.6.4
webview_flutter : ^2.3.0
qr_flutter: ^4.0.0 #qrcode generation
qrcode_flutter: ^2.0.1
url_launcher: ^6.0.12 #launching url
uuid: ^3.0.5
encrypt: ^5.0.1
simple_rsa: ^0.0.5
crypto: ^3.0.1
crypto_keys: ^0.3.0
dio: ^4.0.1
pointycastle: ^3.3.4
//from here, bottom plugins don't work
screenshot: ^1.2.3
image_gallery_saver: ^1.7.1
permission_handler: ^8.2.6
email_validator: ^2.0.1 //surprisingly email_validator works
share_plus: ^3.0.4
扑博士:
[✓] Flutter (Channel master, 2.6.0-12.0.pre.837, on macOS 12.0.1 21A559 darwin-x64, locale zh-Hans-FR)
• Flutter version 2.6.0-12.0.pre.837 at /Users/liuqishu/Development/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 341e771b12 (5 days ago), 2021-11-24 19:33:04 -0500
• Engine revision e99aba6a38
• Dart version 2.16.0 (build 2.16.0-46.0.dev)
• DevTools version 2.8.0
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Users/liuqishu/Library/Android/sdk
• Platform android-30, build-tools 30.0.3
• Java binary at: /Applications/Android Studio 4.2
Preview.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.11.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio
• Android Studio at /Applications/Android Studio 4.2 Preview.app/Contents
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
[✓] VS Code (version 1.62.3)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.28.0
[✓] Connected device (3 available)
• Qishu’s iPhone (mobile) • 00008101-0011358401E2001E • ios • iOS 15.1.1
19B81
• iPhone 13 (mobile) • 56F3E614-0B41-4F96-B7B5-FEE3D5E63006 • ios •
com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
• Chrome (web) • chrome • web-javascript • Google Chrome
96.0.4664.55
• No issues found!
错误日志:(以插件share为例,其实我现在实现的任何插件都会报同样的错误)
[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method share on channel dev.fluttercommunity.plus/share)
#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:175:7)
<asynchronous suspension>
我们将不胜感激所有建议。
好吧,我终于想通了这个问题,我不确定我是否处于非常特殊的情况下,但无论如何这是解决方案:
每次我构建应用程序时,即使插件会正确安装,但插件的路径在 GeneratedPluginRegistrant.m
中没有正确导入。所以手动导入后就可以了!
ps:插件路径:/your_project_folder/ios/Pods/Target Support Files
如何在 GeneratedPluginRegistrant.m
中手动添加插件的示例:
#if __has_include(<qrcode/QrcodePlugin.h>)
#import <qrcode/QrcodePlugin.h>
#else
@import qrcode_flutter;
#endif
也将其添加到此文件的底部,在 resgistry
方法中:
[QrcodeFlutterPlugin registerWithRegistrar:[registry registrarForPlugin:@"QrcodeFlutterPlugin"]];