我已经在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);
}
,并且我从未修改过该软件包,但是无论我使用哪个版本的插件,仍然都会收到此错误。希望任何人都能帮助我解决此错误,谢谢。对不起,我的英语不好。
答案 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)
在终端上清理干净,停止构建,然后再次运行对我有用