未处理异常:MissingPluginException(No implementation found for method check on channel plugins.flutter.io/connectivity)

zqry0prt  于 2023-04-07  发布在  Flutter
关注(0)|答案(5)|浏览(1172)

我已经在我的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);
  }

我从来没有修改过这个软件包,但仍然得到这个错误无论什么版本的这个插件,我使用.我希望任何人都可以帮助我解决这个错误,谢谢你.对不起,我的英语不好.

41zrol4v

41zrol4v1#

此错误主要发生在您的pubspec.yaml刚刚添加新包后尝试热重装热重启时。
只需停止正在运行的项目(应用程序),然后重新运行它。这样添加的包(包含实现)也会推送到设备上

km0tfn4u

km0tfn4u2#

在终端上清除抖动停止构建并再次运行对我有效

a64a0gku

a64a0gku3#

以下是无关的上述任务,但最终结果是相同的.我有连接插件和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数据连接,对不起!你仍然必须继续实现连接。

jdzmm42g

jdzmm42g4#

这个问题是通过手动编辑和添加行在你的android GeneratedPluginRegistrant解决,像这样:

import io.flutter.plugins.connectivity.ConnectivityPlugin;

ConnectivityPlugin.registerWith(registry.registrarFor("io.flutter.plugins.connectivity.ConnectivityPlugin"));
pkbketx9

pkbketx95#

运行flutter clean,停止调试,开始调试。应该可以工作。

相关问题