未处理的异常:MissingPluginException(在通道plugins.flutter.io/connectivity中未找到方法检查的实现)

时间:2020-02-06 03:24:17

标签: flutter dart plugins package

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

,并且我从未修改过该软件包,但是无论我使用哪个版本的插件,仍然都会收到此错误。希望任何人都能帮助我解决此错误,谢谢。对不起,我的英语不好。

4 个答案:

答案 0 :(得分:8)

在将新软件包添加到pubspec.yaml之后,尝试热加载热重启时,通常会发生此错误。

只需停止正在运行的项目(应用程序),然后重新运行它即可。这样添加的包(包含实现)也被推送到设备上

答案 1 :(得分:0)

跟随与上述任务无关,但最终结果相同。 连接插件和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 {...}
})

我从未见过Google网站崩溃。如果我想听互联网连接,可以使用计时器。

如果要检查移动数据连接或wifi数据连接,对不起!您仍然必须继续实现连接。

答案 2 :(得分:0)

通过手动编辑并在android GeneratedPluginRegistrant上添加行来解决此问题,如下所示:

import io.flutter.plugins.connectivity.ConnectivityPlugin;

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

答案 3 :(得分:0)

在终端上清理干净停止构建,然后再次运行对我有用