android - FlutterActivity MethodChannel和FlutterView

因此,大约4个月前,我编写了Flutter应用程序。现在,我想做一个小小的更改,但是我不能再编译应用程序了,因为GeneratedPluginRegistrant.registerWith(this)不再起作用了,我没有更改Kotlin代码,只更改了Dart代码。

“GeneratedPluginRegistrant.registerWith( this )”中的“”向我显示此错误:

Type mismatch.
Required: FlutterEngine!
Found: MainActivity

MainActivity类:

import android.os.Bundle
import io.flutter.app.FlutterActivity
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugins.GeneratedPluginRegistrant
import io.flutter.view.FlutterMainclass MainActivity : FlutterActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)GeneratedPluginRegistrant.registerWith(this) // here is the error: Type mismatch. Required: FlutterEngine! Found: MainActivityMethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->if (call.method == "helloFromNativeCode") {val greetings = helloFromNativeCode()result.success(greetings)}}}private fun helloFromNativeCode(): String {return "Hello from Native Android Code"}companion object {private const val CHANNEL = "flutter.native/helper"}
}

如果使用:

import io.flutter.embedding.android.FlutterActivity

代替

import io.flutter.app.FlutterActivity

我可以用

override fun configureFlutterEngine(flutterEngine: FlutterEngine) {GeneratedPluginRegistrant.registerWith(flutterEngine);}

但遇到以下问题:

MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->if (call.method == "helloFromNativeCode") {val greetings = helloFromNativeCode()result.success(greetings)}}

因为我在 flutterView 上遇到错误:

Unresolved reference: flutterView

代码如下所示:

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.GeneratedPluginRegistrant
import io.flutter.view.FlutterMainclass MainActivity : FlutterActivity() {override fun configureFlutterEngine(flutterEngine: FlutterEngine) {GeneratedPluginRegistrant.registerWith(flutterEngine);}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result -> // here is the errorif (call.method == "helloFromNativeCode") {val greetings = helloFromNativeCode()result.success(greetings)}}}private fun helloFromNativeCode(): String {return "Hello from Native Android Code"}companion object {private const val CHANNEL = "flutter.native/helper"}
}

我希望有一个人可以帮助我。

最佳答案

代替flutterView,请使用flutterEngine.getDartExecutor()。

关于android - FlutterActivity MethodChannel和FlutterView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59323505/

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_package_demo/theme/themes.dart';class UserPage extends StatefulWidget {const UserPage({Key key}) : super(key: key);@override_UserPageState createState() => _UserPageState();
}const String CHANNEL ="www.luckly.work"; //这儿要与        MethodChannel(flutterView, CHANNEL)中CHANNEL名称一致
const String invokeMethod ="breeze"; //这儿要与       call.method == invokeMethod中invokeMethod名称一致
var channel = const MethodChannel(CHANNEL);class _UserPageState extends State<UserPage> {String _result = "";@overrideWidget build(BuildContext context) {final theme = Theme.of(context);return Scaffold(appBar: AppBar(title: Text("个人",style: TextStyle(color: theme.accentColor,),),),body: Container(child: Column(children: [Text("个人",style: TextStyle(color: theme.accentColor,),),FlatButton(onPressed: () {setState(() {});currentTheme.toggleTheme();},child: Text("多主题",style: TextStyle(color: theme.accentColor,),),),Center(child: RaisedButton(onPressed: () async {var result = await channel.invokeMethod(invokeMethod);setState(() {_result = result;});print(result);},child: new Text(_result),),)],),),);}
}
package com.example.flutter_package_demo//import io.flutter.app.FlutterActivity
import android.os.Bundle
import io.flutter.app.FlutterActivity
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugins.GeneratedPluginRegistrant//import io.flutter.embedding.android.FlutterActivity//import io.flutter.view.FlutterMainclass MainActivity : FlutterActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)//        GeneratedPluginRegistrant.registerWith(this) // here is the error: Type mismatch. Required: FlutterEngine! Found: MainActivityMethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->if (call.method == InvokeMethod) {val greetings = successNativeCode()result.success(greetings)}}}private fun successNativeCode(): String {return "我是android原生跑过来的数据"}companion object {private const val CHANNEL = "www.luckly.work"private const val InvokeMethod = "breeze"}
}

android - FlutterActivity MethodChannel和FlutterView相关推荐

  1. 混合开发Android FlutterActivity 的透明状态栏

    前言 我们知道,在纯flutter 的项目中,设置透明状态栏只需要在flutter 的入口处添加下面这段代码就可以, if (Platform.isAndroid) {//设置Android头部的导航 ...

  2. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 MethodChannel 通信 )

    文章目录 前言 一.Android 端 MethodChannel 构造函数 二.Android 端 setMethodCallHandler 方法 三.Android 端实现 MethodChann ...

  3. flutter和Android混编下出现“No implementation found for method xxxx on channel”错误

    flutter和Android混编下出现"No implementation found for method xxxx on channel"错误 这个错误出现的原因是Plugi ...

  4. 一个Android菜鸟入门Flutter 笔记(二)

    1. 网络编程与JSON解析 默认的HttpClient请求网络 get() async {//创建网络调用示例,设置通用请求行为(超时时间)var httpClient = HttpClient() ...

  5. Flutter1.12与原生Android交互(kotlin)

    开发原生部分,还是点击Open for Editing in Android Studio好用,提示.自动引用功能都能正常使用. -----------android/app/src/main/kot ...

  6. 与Flutter第一次亲密接触-Android 视角

    作者简介 万坤,5年安卓开发经验,16年加入饿了么,现任职饿了么资深安卓开发工程师,负责饿了么物流安卓相关APP线上的高稳定运行. 前言 Flutter在今年6月份发布第一个Release预览版以来, ...

  7. 糅合flutter-boost与MethodChannel的使用方法

    在<flutter-boost的集成与基本使用(android与flutter的混合开发)>中提到了在大部分情况下,我们不满足于简单的跳转,想要android原生和flutter进一步的融 ...

  8. flutter与android原生通信

    1.原因 刚接触flutter的时候,以为flutter是一个全新开发app的语言,独立于Android原生之外的操作,入坑之后发现不是的.因为Flutter不能完成所有Native的功能,比如不同平 ...

  9. Flutter与Android原生交互

    记录一下小白的学习之路,图片都是走过的坑 文末附demo地址 文章目录 创建project Android端(native) Flutter端 Android调用flutter 创建project 首 ...

最新文章

  1. Ubuntu 系统打开任务管理
  2. python哪本好-Python入门看哪本书好? 这里有答案
  3. python区块链开发_10个开源的Python区块链项目
  4. PostGIS容器运行
  5. 数据结构+算法 学习计划与资源
  6. Go内存管理之代码的逃逸分析
  7. android studio技巧之设置monitor窗口模式查看logcat
  8. matlab生成chirp信号,chirp信号(chirp信号的产生)
  9. VMware 找不到我的计算机
  10. 梦幻家园前37关(iPad)
  11. matlab 交互效应三维图,【MATLAB】使用MATLAB绘制心理学中的交互作用图
  12. 永磁无刷直流电机的分类与区别
  13. 数据分析指标缩写英文单词解释
  14. php readystate,ajax+php打造进度条 readyState各状态
  15. 统计学三大相关系数之Pearson相关系数、Spearman相关系数
  16. 离散数学中 集合、关系、群 的证明方法(英文证明附例题)
  17. Postgresql12+Pgpool-ii 4.1高可用集群
  18. Android实现SSH Client
  19. HM编码器代码阅读(16)——帧间预测之AMVP模式(四)预测MV的获取
  20. [基础]-beautifulsoup模块使用详解

热门文章

  1. 织梦熊掌号插件兼容php5.3,DedeCMS百度熊掌号推送插件下载
  2. android 动画 最顶层_【Android编程实战】StrandHogg漏洞复现及原理分析_Android系统上的维京海盗...
  3. VS2017 报错pthread.h头文件提示无法打开找不到
  4. 解决Windows接收IPSEC(IKE)流量的问题
  5. python 余弦距离_距离公式汇总以及Python实现
  6. mysql临时表好处和坏处_mysql临时表产生的执行效率问题改进(转)
  7. linux程序加载器,Linux 动态连接加载器 ld-linux用法
  8. springboot 做表白墙_华农表白墙144期 | 等什么时候,她从我开的花店前经过,我把整个花店送个她可好。...
  9. java实验报告合肥工业大学_合肥工业大学 计算机专业 计算方法实验报告
  10. java dispatchevent_dispatchEvent(AWTEvent) 分派事件