flutter - MissingPluginException(未找到对通道 plugins.flutter.io/connectivity 进行方法检查的实现
问题描述
我正在使用这个连接插件来检查互联网连接状态。它适用于颤振飞镖代码,但是当我从本机 android kotlin 代码调用颤振飞镖代码时,会发生此缺失插件异常。所以对我来说,这个错误只有在使用平台通道从本机 android kotlin 代码调用颤振代码时才会发生。
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: MissingPluginException(No implementation found for method check on channel plugins.flutter.io/connectivity)
E/flutter ( 7294): #0 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:319:7)
E/flutter ( 7294): <asynchronous suspension>
E/flutter ( 7294): #1 MethodChannelConnectivity.checkConnectivity (package:connectivity_platform_interface/src/method_channel_connectivity.dart:42:10)
E/flutter ( 7294): #2 Connectivity.checkConnectivity (package:connectivity/connectivity.dart:47:22)
E/flutter ( 7294): #3 isConnectivityAvailable (package:kalyan_matrimony/utils/app_utils.dart:872:50)
E/flutter ( 7294): #4 _BasePackageState._callMembershipDetailsApi (package:kalyan_matrimony/screens/payment/base_package.dart:55:16)
E/flutter ( 7294): #5 _BasePackageState.getMembershipDetailsFromAPI (package:kalyan_matrimony/screens/payment/base_package.dart:51:5)
E/flutter ( 7294): <asynchronous suspension>
E/flutter ( 7294): #6 _BasePackageState.initState (package:kalyan_matrimony/screens/payment/base_package.dart:39:5)
E/flutter ( 7294): #7 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4355:58)
E/flutter ( 7294): #8 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
E/flutter ( 7294): #9 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter ( 7294): #10 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter ( 7294): #11 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
此外,从 mainactivity.kt 文件调用 GeneratedPluginRegistrant.java 文件,但在该文件中没有用于连接和许多其他插件的注册代码。我不明白为什么它不会自动生成?
package io.flutter.plugins;
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry;
/**
* Generated file. Do not edit.
* This file is generated by the Flutter tool based on the
* plugins that support the Android platform.
*/
@Keep
public final class GeneratedPluginRegistrant {
public static void registerWith(@NonNull FlutterEngine flutterEngine) {
ShimPluginRegistry shimPluginRegistry = new ShimPluginRegistry(flutterEngine);
flutterEngine.getPlugins().add(new io.flutter.plugins.camera.CameraPlugin());
ConnectivityPlugin.registerWith(shimPluginRegistry.registrarFor("io.flutter.plugins.connectivity.ConnectivityPlugin"));
flutterEngine.getPlugins().add(new io.flutter.plugins.connectivity.ConnectivityPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin());
flutterEngine.getPlugins().add(new com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin());
io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin.registerWith(shimPluginRegistry.registrarFor("io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin"));
com.fuyumi.flutterstatusbarcolor.flutterstatusbarcolor.FlutterStatusbarcolorPlugin.registerWith(shimPluginRegistry.registrarFor("com.fuyumi.flutterstatusbarcolor.flutterstatusbarcolor.FlutterStatusbarcolorPlugin"));
com.aldiferdiyan.xmpp.flutter_xmpp.FlutterXmppPlugin.registerWith(shimPluginRegistry.registrarFor("com.aldiferdiyan.xmpp.flutter_xmpp.FlutterXmppPlugin"));
com.aloisdeniel.geocoder.GeocoderPlugin.registerWith(shimPluginRegistry.registrarFor("com.aloisdeniel.geocoder.GeocoderPlugin"));
flutterEngine.getPlugins().add(new vn.hunghd.flutter.plugins.imagecropper.ImageCropperPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.imagepicker.ImagePickerPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.inapppurchase.InAppPurchasePlugin());
flutterEngine.getPlugins().add(new com.lyokone.location.LocationPlugin());
com.baseflow.location_permissions.LocationPermissionsPlugin.registerWith(shimPluginRegistry.registrarFor("com.baseflow.location_permissions.LocationPermissionsPlugin"));
flutterEngine.getPlugins().add(new io.flutter.plugins.packageinfo.PackageInfoPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.pathprovider.PathProviderPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin());
flutterEngine.getPlugins().add(new com.tekartik.sqflite.SqflitePlugin());
com.danieldallos.storeredirect.StoreRedirectPlugin.registerWith(shimPluginRegistry.registrarFor("com.danieldallos.storeredirect.StoreRedirectPlugin"));
flutterEngine.getPlugins().add(new io.flutter.plugins.urllauncher.UrlLauncherPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.webviewflutter.WebViewFlutterPlugin());
}
}
任何建议都会非常有帮助。提前致谢。
解决方案
该connectivity
插件似乎不需要编写任何特定于平台的代码。添加插件后您是否尝试过重新启动?Ahot reload
可能尚未包含您添加的插件。
如果您仍然遇到问题,最好分享一个最小的重现,以便我们能够更好地理解问题。
推荐阅读
- java - Cucumber - Java - 标识符中的非 ASCII 字符
- pandas - koalas 列赋值不支持类型ndarray
- python - 制作图像时如何重新排列像素
- kubernetes - Terraform 应用抛出错误“等待插件启动时超时”
- azure - 用于在资源组参与者中自动添加用户组的 Azure 策略
- javascript - 周开始数组 javascript 直到 X 天
- node.js - 如何引用节点模块中包含的 nunjucks 模板?
- javascript - 如何为 Promise.resolve().then() 使用异步替代方案?
- ruby-on-rails - Ruby - 有没有办法获取特定未来时间的时间戳,但取决于时区
- ios - Swift 编程约束不起作用