flutter和Android混编下出现“No implementation found for method xxxx on channel”错误
flutter和Android混编下出现“No implementation found for method xxxx on channel”错误
这个错误出现的原因是Plugin的方法没有找到,也可能是Plugin本身就没有注册成功。
在混编情况下出现这个问题,很大概率是我们在网上查找的资料中是这样写的。
import android.os.Bundle
import io.flutter.app.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugins.GeneratedPluginRegistrant
class MainActivity: FlutterActivity() {private val flutterMethodChannelName = "flutterCallbackMethodChannel"var methodChannel_callFlutter: MethodChannel? = null@SuppressLint("NewApi")override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)GeneratedPluginRegistrant.registerWith(FlutterEngine(this@MainActivity))methodChannel_callFlutter = MethodChannel(flutterView, flutterMethodChannelName)}
}
这个代码在flutter更新了FlutterActivity后就会导致这个问题,不能再引用io.flutter.app.FlutterActivity这个FlutterActivity,而应该改用io.flutter.embedding.android.FlutterActivity。同时,继承自新版本FlutterActivity的MainActivity找不到flutterView这个方法,因此要改用getFlutterEngine().getDartExecutor().getBinaryMessenger()来代替。
代码改为:
import android.os.Bundle
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugins.GeneratedPluginRegistrantclass MainActivity: FlutterActivity() {private val flutterMethodChannelName = "flutterCallbackMethodChannel"var methodChannel_callFlutter: MethodChannel? = null@SuppressLint("NewApi")override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)methodChannel_callFlutter = MethodChannel(flutterEngine!!.dartExecutor.binaryMessenger, flutterMethodChannelName)}override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {GeneratedPluginRegistrant.registerWith(flutterEngine);}
}
参考文章
https://blog.csdn.net/qq_40928212/article/details/105545875
https://blog.csdn.net/oZhuiMeng123/article/details/98120505
https://blog.csdn.net/weixin_44160584/article/details/108244793
flutter和Android混编下出现“No implementation found for method xxxx on channel”错误相关推荐
- dart和python混编,Flutter与iOS混编(一)
前言 Flutter和iOS支持两种形式的混编,一种是某一些页面全是用flutter去绘制,另外一只是flutter页面作为iOS某个控制器页面的一部分去展示,后面会逐步去介绍这两种方式的实现 本篇文 ...
- Android 混编项目打包流程
本文送给我离职以后缺爱的前端同事们,祝愿他们在没有了打包靠山后可以自食其力,靠自己撑起打包界的一片天 本秘籍分为四步,前三步可实现在已连接的手机上安装并自动显示(即使界面上看见了图标也不要去点!让子弹 ...
- android 混编JsBridge的原理和实现
首先我们先要知道 js调用Android的方法有以下四种: WebView的JavascriptInterface WebViewClient.shouldOverrideUrlLoading() W ...
- 原生工程接入Flutter实现混编
前言 上半年我定的OKR目标是帮助团队将App切入Flutter,实现统一技术栈,变革成多端融合开发模式.Flutter目前是跨平台方案中最有潜力实现我们这个目标的,不管是Hybird还是React ...
- cache failed module status_Flutter混编之路——iOS踩坑记录
一.运行Xcode编译或者flutter run/build 过程中报错:"x86_64" is not an allowed value for option "ios ...
- android蓝牙通信_Flutter通过BasicMessageChannel实现Flutter 与Android iOS 的双向通信
题记: --不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧. 通过 Flutter 来进行移动应用开发,打包 Android .iOS 双平台应用程序,在调用如相机 ...
- Flutter通过BasicMessageChannel实现Flutter 与Android iOS 的双向通信
更多文章请查看 flutter从入门 到精通 本文章中的完整代码在这里 题记: -- 不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧. Flutter 与 Andr ...
- android 原生混编 flutter 并使用 flutter_boost进行跳转的步骤以及注意事项
导入步骤: 1.将flutter_module放在项目中,与app module平级. 2.在项目build.gradle里面,加入以下代码: include ':app' // 加入下面配置 set ...
- flutter java混编_有赞 Flutter 混编方案
背景 目前准备试水 Flutter,但是多数native开发是不了解Flutter,因此需要设计一种比较"舒服"的集成方式. 混编方案 方案考量 如果直接采用 Flutter 工程 ...
最新文章
- uni中动态加载class_SpringBoot中使用LoadTimeWeaving技术实现AOP功能
- java ftp下载文件 慢_java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题...
- pandas使用笔记大全
- 布隆过滤器速度_详解布隆过滤器的原理、使用场景和注意事项
- ElasticSearch6.3脚本更新
- 掘金浏览器插件安装图文教程
- CentOS 5安装GIT的基本命令
- 记一次详细的的SQL查询经历,group by慢查询优化
- [stl]集合相似度(PTA)
- python高级编程教程_python高级编程——入门语法(一)
- matlab能替代几何画板吗,比几何画板更强大的工具软件GeoGebra,数学老师值得拥有...
- ptcms自动采集小说系统源码 电脑版+手机版
- 网上大多数原理总结,UDP打洞原理
- IDEA使用/配置指南(从入门到精通)_by瞎琢磨先生
- 基于物理信息深度学习的交通状态估计:以LWR和CTM模型为例
- JSP书香味道点餐系统课设
- 更换JDK然后打不开eclipse的解决方法
- VC和VS的区别--通俗易懂
- 计算机视觉的最终表现!三维重建技术
- 计算机运算和控制核心的简称,计算机的核心是什么