插件重复注册

来源:11-10 Flutter与Native通信-Android端实战【实战应用】

hardman_

2020-06-07

使用了MethodChannel 方式与Android通信 启动app时会报错

W/FlutterEnginePluginRegistry(14771): Attempted to register plugin (io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry$ShimRegistrarAggregate@deaa0e5) but it was already registered with this FlutterEngine (io.flutter.embedding.engine.FlutterEngine@a77ba).

MainActivity
图片描述
GeneratedPluginRegistrant:
图片描述

在我注册了与原生通道的插件后 我在pubspec.yaml 新添加的依赖 都会以
ShimPluginRegistry shimPluginRegistry = new ShimPluginRegistry(flutterEngine);
com.flutter_webview_plugin.FlutterWebviewPlugin .registerWith(shimPluginRegistry.registrarFor(“com.flutter_webview_plugin.FlutterWebviewPlugin”));这种形式被创建,如果我不新添加依赖就不会报错 但是只要我pubspec.yaml 文件里添加了新的依赖 并且运行 就会报错。

写回答

1回答

CrazyCodeBoy

2020-06-07

你的Flutter是那个版本呢,如果是v1.17.0可以尝试下面的注册方式:

public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);
    //flutter sdk >= v1.17.0 时使用下面方法注册自定义plugin
    AsrPlugin.registerWith(this, flutterEngine.getDartExecutor().getBinaryMessenger());
}

https://git.imooc.com/coding-321/flutter_trip/src/c79b630d3e7054a8b42172c2f5503b034d472415/android/app/src/main/java/org/devio/fluttertrip/MainActivity.java


0
2
hardman_
非常感谢讲师 我的问题已经解决了 这个错误百度都搜不到 真的卡了好几天。买了这个课真的巨值
2020-06-07
共2条回复

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3277 问题

查看课程