繁体   English   中英

基于 Flutter 的 Android 应用程序抛出 MissingPluginException(未找到通道上的方法的实现)

[英]Flutter based Android app throwing MissingPluginException(No implementation found for method on channel)

我正在尝试使我的 android 应用程序的本机端与 Flutter 进行通信。

这是在 Flutter 端:

static const platform = const MethodChannel('getHallInfo');

@override
void initState() {
testing().then((String lst) {
  setState(() {
    if (lst != null) str = lst;
  });
});

super.initState();
}

@override
Widget build(BuildContext context) {
return Column(
  children: <Widget>[Text(str)],
);
}

static Future<String> testing() async {
String lst;
try {
  lst = await platform.invokeMethod('getHalls');
} catch (e) {
  print(e.toString());
}

return lst;
}

这是在本机 Java 上:

private static final String CHANNEL = "getHallInfo";
super.configureFlutterEngine(getFlutterEngine());
GeneratedPluginRegistrant.registerWith(getFlutterEngine());

new MethodChannel(getFlutterEngine().getDartExecutor().getBinaryMessenger(), CHANNEL).setMethodCallHandler(new MethodChannel.MethodCallHandler() {
        @Override
        public void onMethodCall(MethodCall methodCall, MethodChannel.Result result) {

            if (methodCall.method.equals("getHalls")) {
              String mm= "Succeeded";
              System.out.println("Entered");
                result.success(mm);
            }

        }
    });

我的 Pubspec.yaml:

name: flutterModule

description: A new flutter module project.

version: 1.0.0+1

environment:
 sdk: ">=2.1.0 <3.0.0"

dependencies:
 flutter:
  sdk: flutter

cupertino_icons: ^0.1.3

flutter_svg: ^0.17.4

google_fonts: ^1.1.0

intl: ^0.16.1

dev_dependencies:
 flutter_test:
  sdk: flutter

flutter:
 uses-material-design: true
assets:
- assets/icons/

module:
 androidX: true
 androidPackage: com.example.flutterModule
 iosBundleIdentifier: com.example.flutterModule

这是我得到的错误:

MissingPluginException(在通道 getHallInfo 上找不到方法 getHalls 的实现)

注意: “输入”显示在终端上

编辑:这些是我尝试过的事情:

  1. 运行 flutter 清洁
  2. 运行flutter升级
  3. 重启应用

但是这个例外仍然存在。

您只需要停止应用程序并重新启动它。

在停止应用程序之前,请确保您确实pub get 使用命令。

flutter pub get

尝试flutter clean

然后flutter upgrade

然后flutter run -v

如果这不起作用,请查看以下问题: issue01issue02

我希望这能帮到您

你只需要运行

Flutter clean

然后再次重新启动/运行您的应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM