Flutter调用Android原生和遇到问题

2021-03-26  本文已影响0人  星邪Ara

直接上代码吧

Android端

public class MainActivity extends FlutterActivity {

    @Override
    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
        flutterEngine.getPlugins().add(new TestPlugin());
        super.configureFlutterEngine(flutterEngine);
    }
}
public class TestPlugin implements FlutterPlugin, MethodChannel.MethodCallHandler {
    /*** 两端交互标识 */
    private final static String channelName = "channel_test";

    @Override
    public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
        //主要通过MethodChannel来跟Flutter交互
        MethodChannel channel = new MethodChannel(binding.getBinaryMessenger(), channelName);
        channel.setMethodCallHandler(this);
    }

    @Override
    public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {

    }

    @Override
    public void onMethodCall(MethodCall methodCall, MethodChannel.Result result) {
        System.out.println("Flutter 调用方法:" + methodCall);
    }
}

Flutter端

String _channelName = "channel_test";
static const MethodChannel _methodChannel = MethodChannel(_channelName);
 await _methodChannel.invokeMethod("test", "ok");

问题

Flutter调用Android调不通,各种查资料也没找到,最后给其他人讲解的时候突如其来灵感,原来是我在添加插件的时候,把两个插件_channelName都用了同一个导致的,我一直在调试的是第一个插件,结果他被第二个插件覆盖了,保证插件_channelName唯一就可以了,醉了,醉了,醉了。

记录下

上一篇 下一篇

猜你喜欢

热点阅读