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

configureFlutterEngine方法在flutter中编写kotlin代码的问题

苏鸿志
2023-03-14

我想在flutter中编写特定于平台的代码,根据flutter留档,我们应该覆盖configureFlutterEngine方法,如下面的代码片段:

override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine)
    MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler {
      call, result ->
      // Note: this method is invoked on the main thread.
      // TODO
    }
  }

但当我将flutterEngine传递给GeneratedPluginRegistrant时。registerWith(),它表示:

类型不匹配:推断的类型是FlutterEngine,但Plugin注册表!是预期的

我已经在github中检查了下面的链接,但没有找到任何适合我的解决方案。https://github.com/flutter/flutter/issues/45231

以下是用于编写平台特定代码的颤振文档链接。https://flutter.dev/docs/development/platform-integration/platform-channels?tab=android-channel kotlin选项卡#示例项目

共有2个答案

祁兴运
2023-03-14

这就是我在kotlin使用它的方式

import androidx.annotation.NonNull
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel

class MainActivity: FlutterActivity() {
  private val CHANNEL = "samples.flutter.dev/battery"

  override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
    super.configureFlutterEngine(flutterEngine)
    MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler {
      call, result ->
      // Note: this method is invoked on the main thread.
      // TODO
    }
  }
}

确保使用如图所示的相同导入。读取文档

云承天
2023-03-14

我使用onCreate()代替configureflatterengine()方法,现在工作正常。

override fun onCreate(savedInstanceState: Bundle?) {
    GeneratedPluginRegistrant.registerWith(this)
    MethodChannel(flutterView, CHANNEL).setMethodCallHandler {
      call, result ->
      // Note: this method is invoked on the main thread.
      // TODO
    }
  }

而不是传递flutterEngine.dartExecutor.binaryMessengerMachodChannel,传递flutterView

 类似资料:
  • 关于使用任何语言与flutter,我得到了一些类似的问题,但我特别想在flutter中使用Kotlin或Java代码。 我在研究Kotlin和Java。我想做一个跨平台的应用程序,可以运行在任何设备上,但我不熟悉dart,这是一个官方语言的Flutter。那么我有没有办法在Flutter中使用Kotlin代码?

  • 本文向大家介绍编写高性能Lua代码的方法,包括了编写高性能Lua代码的方法的使用技巧和注意事项,需要的朋友参考一下 前言 Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏。像《魔兽世界》的插件,手机游戏《大掌门》《神曲》《迷失之地》等都是用Lua来写的逻辑。 所以大部分时候我们不需要去考虑性能问题。Knuth有句名言:“过早优化是万恶之源”。其意思就是过早优化是不必要的,会浪费

  • 我想将我的VBA代码实现到SAS代码中,这样一次运行就可以完成整个过程。我的SAS代码读取一个大SAS表,进行一些转换,最后导出到Excel文件(代码如下)。我还在Excel文件中编写了一些VBA代码(例如,对某些变量进行自动筛选,您可以看到下面的代码)。 这张桌子看起来像这样: 然而,我想将我的VBA代码实现到SAS代码中,这样我就可以一次运行完成整个过程。我知道如何在SAS中打开和运行Exce

  • 本文向大家介绍在JSP页面内编写java代码方法总结,包括了在JSP页面内编写java代码方法总结的使用技巧和注意事项,需要的朋友参考一下 JSP脚本元素的类型 脚本元素提供了在jsp中插入java代码的能力。脚本元素有三种类型: 脚本(scriptlet): 是JSP页面中Java代码片段的容器。将页面转换为servlet类时,会将scriptlet内容插入到servlet类的jspServic

  • 11.3 编写代码 要完成我们的程序,我们需要创建一个Java文件。默认情况下,Maven会编译src/main/java目录下的源文件,因此您需要创建该目录结构,然后添加一个名为src/main/java/Example.java的文件: import org.springframework.boot.*; import org.springframework.boot.autoconfigur

  • 了解如何在“代码”视图中工作并充分利用 Dreamweaver 的编码功能。 可通过多种方式在 Dreamweaver 中处理代码。 您可以使用“新建文档”对话框打开新的代码文件,然后开始键入您的代码。在 Dreamweaver 中创建新的代码文件 键入时,会显示代码提示以帮助您选择代码和避免打字错误。如果需要,可使用 Dreamweaver 的有用的快捷文档获取 CSS 的相关帮助。 还可以使用