场景

Flutter版本更新后,运行出现以下问题,App闪退。

W/FlutterEngineCxnRegstry(10678): Attempted to register plugin (io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry$ShimRegistrarAggregate@3777b26) but it was already registered with this FlutterEngine (io.flutter.embedding.engine.FlutterEngine@6c93367).
E/AndroidRuntime(10678): FATAL EXCEPTION: main
E/AndroidRuntime(10678): Process: com.example.firstflutterapp, PID: 10678
E/AndroidRuntime(10678): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.firstflutterapp/com.example.firstflutterapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void io.flutter.plugin.common.BinaryMessenger.setMessageHandler(java.lang.String, io.flutter.plugin.common.BinaryMessenger$BinaryMessageHandler)' on a null object reference
E/AndroidRuntime(10678):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3898)
E/AndroidRuntime(10678):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4081)
E/AndroidRuntime(10678):  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
E/AndroidRuntime(10678):  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
E/AndroidRuntime(10678):  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
E/AndroidRuntime(10678):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2462)
E/AndroidRuntime(10678):  at android.os.Handler.dispatchMessage(Handler.java:110)
E/AndroidRuntime(10678):  at android.os.Looper.loop(Looper.java:219)
E/AndroidRuntime(10678):  at android.app.ActivityThread.main(ActivityThread.java:8393)
E/AndroidRuntime(10678):  at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(10678):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/AndroidRuntime(10678):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
E/AndroidRuntime(10678): Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void io.flutter.plugin.common.BinaryMessenger.setMessageHandler(java.lang.String, io.flutter.plugin.common.BinaryMessenger$BinaryMessageHandler)' on a null object reference
E/AndroidRuntime(10678):  at io.flutter.plugin.common.MethodChannel.setMethodCallHandler(MethodChannel.java:119)
E/AndroidRuntime(10678):  at com.jzoom.amaplocation.AmapLocationPlugin.registerWith(AmapLocationPlugin.java:54)
E/AndroidRuntime(10678):  at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:18)
E/AndroidRuntime(10678):  at com.example.firstflutterapp.MainActivity.configureFlutterEngine(MainActivity.kt:31)
E/AndroidRuntime(10678):  at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:180)
E/AndroidRuntime(10678):  at io.flutter.embedding.android.FlutterActivity.onCreate(FlutterActivity.java:409)
E/AndroidRuntime(10678):  at android.app.Activity.performCreate(Activity.java:8121)
E/AndroidRuntime(10678):  at android.app.Activity.performCreate(Activity.java:8109)
E/AndroidRuntime(10678):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320)
E/AndroidRuntime(10678):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3871)
E/AndroidRuntime(10678):  ... 11 more

解决方案

根据错误描述,是因为注册plugin时提示已经被注册过了了。
涉及到插件,需要看官方文档。https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects。
以下是我的MainActivity.kt

class MainActivity: FlutterActivity() {override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {super.configureFlutterEngine(flutterEngine)GeneratedPluginRegistrant.registerWith(flutterEngine)}
}

这是官方代码

+    @Override
+    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
+        GeneratedPluginRegistrant.registerWith(flutterEngine);
+        new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
+                .setMethodCallHandler(
+                    (call, result) -> {
+                        // Your existing code
+                }
+        );
+    }

发现多了个super方法,查看FlutterActivity源码发现,configureFlutterEngine方法已经调用过了GeneratedPluginRegistrant.registerWith(flutterEngine),所以我们只需要删除super.configureFlutterEngine(flutterEngine)即可。

class MainActivity: FlutterActivity() {override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {//super.configureFlutterEngine(flutterEngine)GeneratedPluginRegistrant.registerWith(flutterEngine)}
}

解决attempted to register plugin but it was already registered with this flutterengine相关推荐

  1. android 解决Error:This Gradle plugin requires Studio 3.0 minimum

    今天,继续简单讲讲如何解决Error:This Gradle plugin requires Studio 3.0 minimum. 之前讲过这个问题,有点不全面,所以再记录一下. 原因:项目用的是3 ...

  2. android 解决Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Andro

    今天,简单讲讲android studio导入工程时,出现报错Error:This Gradle plugin requires a newer IDE able to request IDE mod ...

  3. gym注册customer env 报错:Attempted to register malformed environment ID:My_env

    跟随着gym的教程,准备把自己写的环境注册在gym的envs上面, 过程如下: 第⼀步,将我们⾃⼰的环境⽂件(笔者创建的⽂件名为 Myenv.py,类名为ReEnv ) 拷⻉到你的gym安装⽬录/gy ...

  4. 解决Jenkins Email Extension Plugin发送邮件失败

    昨天用来测试的虚拟机不知道怎么回事,Firefox自动升级到8.0.结果就是我的WebDriver PythonBindings 在FF8下面是用不了的.现象就是,实例化一个Firefox Drive ...

  5. 解决:Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:2.3.2问题

    出现Cannot resolve plugin org.apache.maven.plugins这类的问题原因基本都是一样的,都是导入本地仓库时出错,出错的原因可能是版本原因,也有其他原因. 解决办法 ...

  6. qt android meta data,Qt小技巧5.解决Failed to extract plugin meta data问题

    使用Qt插件开发时,在debug模式下加载插件时遇到如下问题: "Failed to extract plugin meta data from './ICE-PCPUd. dll'&quo ...

  7. 解决“attempted relative import with no known parent package“的错误

    用pycharm写代码时,当import无法识别同一个文件夹中的文件,提示"attempted relative import with no known parent package&qu ...

  8. MVC.Net: 解决Attempted to access an unloaded appdomain的问题

    在C#中尝试获取AD帐号信息时,会随机出现Attempted to access an unloaded appdomain的问题,解决方法如下: 将 principalContext = new P ...

  9. 彻底解决gradle与gradle plugin匹配关系以及gradle下载缓慢的问题

    文章目录 问题引入 原因 解决方法 1. 检查gradle版本和gradle插件版本是否匹配 2. 解决gradle下载慢的问题 手动下载gradle包 替换依赖仓库 方法一:在build.gradl ...

最新文章

  1. mysql 变量is null 和 not exists区别
  2. XML学习第三节 Schema介绍
  3. 自己的总结(你必须知道的C 495个问题)
  4. vue3.x通过ref属性获取元素
  5. 方程求解(洛谷P1689题题解,Java语言描述)
  6. Hadoop Hbase安装配置
  7. FATFS Copy Files
  8. python数据分析课后习题
  9. matlab向量乘法要加.,matlab中的矩阵与向量运算
  10. Android 串口蓝牙通信开发Java版本
  11. 天池比赛:工业蒸汽量预测
  12. 致初学者:如何学好Python这门编程语言?
  13. 【Office】新建的EXCEL打不开,而存在的EXCEL能打开
  14. 布袋除尘器过滤风速多少_布袋除尘器处理风量、过滤风速、过滤面积怎么算?这篇全了...
  15. 整车nvh培训入门 仿真 ,基于Hyperworks 掌握思路 细节
  16. 2020-4-5 深度学习笔记17 - 蒙特卡罗方法 3 ( 马尔可夫链蒙特卡罗方法MCMC-先验分布/后验分布/似然估计,马尔可夫性质)
  17. 网页制作:一个简易美观的登录界面
  18. RXSwift进阶:RXSwift的底层核心逻辑解析
  19. springboot一键启动
  20. 一文搞懂matplotlib中的颜色设置

热门文章

  1. android 镂空字体下载,Android开发TextvView实现镂空字体效果
  2. 惠普Z820安装win10系统攻略(固态作为系统盘)——思小瓜
  3. Qt程序无法启动,debug时提示During startup program exited with code 0xc0000135
  4. java应用程序接口批量访问_spring中使用mybatis实现批量插入的示例代码
  5. 计算机在教育领域中的应用方式,计算机技术在教育中的应用
  6. FFmpeg合并音频文件和视频文件
  7. 探索 Flutter 模拟事件触发 | 开发者说·DTalk
  8. html中去除下划线,下划线怎么取消?
  9. MATLAB中强行终止执行程序的4种方法
  10. 单片机入门学习笔记6:新唐单片机N76E003