当前位置: 首页 > 知识库问答 >
问题:

flatter:从本机代码生成的隔离中调用插件时缺少PluginException

潘秦斩
2023-03-14

我正在构建一个Flutter应用程序,当设备连接到另一个蓝牙设备时,它将能够执行一些操作。这个应用程序应该适用于Android和iOS但为了简单起见,我将在这篇文章中重点介绍Android。此外,无论应用程序是在前台、后台还是被杀死,这都必须有效。

以下是应用程序的架构:

  1. 我有一个Android本机代码,可以通过广播接收器注册蓝牙事件

一切都运行得很好。调用了Flutter代码,我可以使用print(data)来记录Android代码提供的数据。

当我想从孤立的角度调用任何颤振插件(比如sqflitepackage\u info\u plus,…)时,事情变得更加棘手了。我每次都会遇到此错误:

[错误:flutter/lib/用户界面/ui_dart_state.cc(199)]未处理的异常:MissingPluginException(在通道yyy上找不到方法xxx的实现)

我知道生成的隔离不能本机运行Flutter插件。有一些帖子(无法理解“Window_sendPlatformMessage”(4个参数)找不到”错误的Flutter隔离解决方法,https://github.com/flutter/flutter/issues/13937)解释了如何使用解决方法或类似https://pub.dev/packages/flutter_isolate.的插件创建可以运行Flutter插件的隔离但是,我无法使用此包创建隔离,因为隔离是从Android代码创建的。

你们谁能告诉我怎样才能做到这一点?有没有一种方法可以使用由本机代码创建的隔离插件中的flatter插件?

提前非常感谢

共有1个答案

戚英逸
2023-03-14

听起来,创建颤振隔离的方式可能与您的目标不兼容。有一些解决方案可以将Flatter与本机Android/iOS项目集成,例如Flatter_boost(免责声明:我没有尝试过,也不确定它是否好;你可能还会找到许多其他替代方案,这只是一个例子)。可以使用它来创建颤振环境。由于上面的解决方案允许一些Android代码打开一个新的普通颤振页面,而该页面中的颤振代码可以做任何事情(当然包括调用本机——否则像颤振_boost这样的东西真的没用),所以这应该行得通。

 类似资料:
  • 问题内容: 我使用XJC工具为XSD架构生成Java类。当我使用JAXB Marshaller将类编组为XML有效负载时,我在输出XML中缺少“ schemaLocation”参数,但在xsd文件中声明了此参数。如何在输出XML中强制执行“ schemaLocation”参数? 以下是用于代码生成的xsd模式文件的开头: 问候 问题答案: 试试这个:

  • npm错误!此运行的完整日志可以在:npm err!C:\users\ttopo\appdata\roaming\npm-cache_logs\2020-11-20t07_58_40_339z-debug.log` 0信息如果它以ok结束就可以工作1详细cli[1详细cli'c:\program Files\nodejs\node.exe',1详细cli'c:\program Files\node

  • 问题内容: 我正在使用c ++为node.js编写附加组件。 这里有一些片段: 我需要将一个JavaScript函数另存为回调,以便稍后调用。Client类是另一个对象的观察者,应从onAsyncMethodEnds调用javascript回调。不幸的是,当我调用函数“ BeInitiator”时,在回调Call()之前收到“ Bus error:10”错误 感谢建议 问题答案: 您不能从另一个线

  • 问题内容: 在iOS8中使用WKWebView,如何从本机端运行JavaScript函数或以其他方式从本机端与JavaScript通信?似乎没有类似于UIWebView的方法。 (我可以在该对象上使用,以允许从JS到本机进行通信,但是我正在寻找相反的方向。) 问题答案: (我在这里提出问题后不久就为此提出了雷达申请。) 几天前刚刚添加了一种新方法(感谢jcesarmobile指出): 添加 该方法

  • 我对jaxb2 maven插件版本2.4有以下配置 但是当我运行时,不会生成任何类。 我能忽略什么? 我已经在这里粘贴了一个wsdl 编辑 由于提到这可能是一个可能的重复,我将插件降级为版本并将配置更改为以下,仍然没有生成类。 完整的pom在这里,因为站点抱怨代码太多 清洗后,它最终可与版本一起使用。为什么版本不起作用?

  • 问题内容: 我在SVN上的Eclipse中有一个新的Java项目,只是试图在Eclipse的Project Explorer窗口中打开该项目,并收到此错误: 从插件调用代码时发生了问题。 我该如何解决这个问题? 异常堆栈跟踪: 会话数据: 问题答案: 您的项目可能没有配置为您的补偿。尝试从现有资源中删除并重新创建项目。如果它们不小心提交到SVN(例如,以点开头),也请删除所有的月食内部目录。