未处理的异常:MissingPluginException(未找到对通道 plugins.flutter.io/connectivity 进行方法检查的实现)
Posted
技术标签:
【中文标题】未处理的异常:MissingPluginException(未找到对通道 plugins.flutter.io/connectivity 进行方法检查的实现)【英文标题】:Unhandled Exception: MissingPluginException(No implementation found for method check on channel plugins.flutter.io/connectivity) 【发布时间】:2020-05-22 01:05:26 【问题描述】:我已经在我的pubspec.yaml
上添加了连接插件。
connectivity: ^0.4.6
但仍然出现此错误:
E/flutter ( 4789): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method check on channel plugins.flutter.io/connectivity)
E/flutter ( 4789): #0 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:7)
E/flutter ( 4789):
E/flutter ( 4789): #1 Connectivity.checkConnectivity (package:connectivity/connectivity.dart:73:47)
错误连接来自这一行:
Future<ConnectivityResult> checkConnectivity() async
final String result = await methodChannel.invokeMethod<String>('check');
return _parseConnectivityResult(result);
我从来没有修改过这个包,但是无论我使用什么版本的这个插件,仍然会出现这个错误。我希望任何人都可以帮助我解决这个错误,谢谢。对不起我的英语不好。
【问题讨论】:
您是在 android、ios 还是 Web 上使用它?你试过flutter clean
吗?
你在Android
代码中实现了check
方法吗?
@mFeinstein 我在 android anf iOS 中都使用它,我尝试了 flutter clean,也删除了包并再次添加它,但还是一样,
我猜也是热重启?
@Xihuny 我不知道,我想我不会那样做,我不知道如何在 android 中实现该代码
【参考方案1】:
Flutter clean 在终端上,停止构建并再次运行对我有用
【讨论】:
【参考方案2】:这个问题可以通过手动编辑并在你的 android GeneratedPluginRegistrant 上添加一行来解决,如下所示:
import io.flutter.plugins.connectivity.ConnectivityPlugin;
ConnectivityPlugin.registerWith(registry.registrarFor("io.flutter.plugins.connectivity.ConnectivityPlugin"));
【讨论】:
再次运行应用程序后,它会再次生成整个文件,对不起,但它没有帮助完整【参考方案3】:此错误主要发生在您尝试Hot Reload 或Hot Restart 刚刚将新包添加到您的pubspec.yaml
之后。
只需停止正在运行的项目(应用程序),然后重新运行它。这样添加的包(包含实现)也推送到设备
【讨论】:
我已经这样做了,即使我卸载了 apk 并再次运行,但仍然得到同样的错误 @Crazy Lazy Cat 谢谢,做到了。【参考方案4】:跟随与上述任务无关,但最终结果相同。 我在连接插件和 IOS 配置方面遇到了麻烦。所以我使用以下方法来检查我的应用是否连接到互联网:
static Future<bool> checkInternetConnectivity() async
bool isConnected;
try
final result = await InternetAddress.lookup('google.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty)
isConnected = true;
on SocketException catch (_)
isConnected = false;
return isConnected;
AppUtil.checkInternetConnectivity().then((isOnline) async
if (isOnline) ... else ...
)
我从未见过谷歌网站出现故障。如果我想听互联网连接,我会使用计时器。
如果您想检查移动数据连接或 wifi 数据连接,对不起!您仍然需要继续实现连接。
【讨论】:
实际上,我想检测网络变化,因为我不知道如何在网络未连接或不可用时显示错误,并且在网络可用和连接时请求获取 api,以防互联网连接突然失去了以上是关于未处理的异常:MissingPluginException(未找到对通道 plugins.flutter.io/connectivity 进行方法检查的实现)的主要内容,如果未能解决你的问题,请参考以下文章
SQL 异常未处理 - System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常