我正在使用此连接插件来检查Internet连接状态。它与flutter dart代码一起正常工作,但是当我从本机android kotlin代码调用flutter dart代码时,会发生该missingplugin异常。因此,对我来说,仅当使用平台通道从本机android kotlin代码调用flutter代码时,才会发生此错误。
[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());
}
}
任何建议都会很有帮助。预先感谢。
答案 0 :(得分:0)
connectivity
插件似乎不需要编写任何特定于平台的代码。您是否尝试在添加插件后重新启动? hot reload
可能尚未包含您添加的插件。
如果您仍有问题,最好分享一个 minimal repro 以便我们能够更好地了解问题。