【问题标题】:MissingPluginException(No implementation found for method on channel )MissingPluginException(未找到通道上的方法的实现)
【发布时间】:2021-11-25 20:23:57
【问题描述】:

我正在尝试从 dart 类的 android 模块上的 kotlin 类调用方法,但是,我一直收到

MissingPluginException(未找到通道上的方法的实现)

找不到任何问题

飞镖代码:

class ****{
  MethodChannel _methodChannel = MethodChannel('android3ds/channel');

  customizar() async {
    try {
      await _methodChannel.invokeMethod('customizar');
    } on PlatformException catch (e) {
      print(e);
    }
  }

kotlin 代码

class *****(var activity: Activity, val environment: Environment) {

    lateinit var flutterEngine : FlutterEngine


    val CHANNEL = "android3ds/channel"

    val methodChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).
    setMethodCallHandler { call, result ->
        if (call.equals("customizar")) {
            customizar()
        }
    }
fun customizar() {
}

【问题讨论】:

  • 您的代码看起来不错,至少从您分享的内容来看是这样。您是否尝试过重新加载 您的应用,不要热重新加载

标签: android flutter kotlin dart


【解决方案1】:

从 MainActivity.kt 中调用了 kotlin 类并且它起作用了:

internal class MainActivity : FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)

        var kotlin_class: **** = ****(this, Environment.SANDBOX)

        provideFlutterEngine(this)?.let { GeneratedPluginRegistrant.registerWith(it) }

        val CHANNEL = "android3ds/name"

        val methodChannel = MethodChannel(flutterEngine?.dartExecutor?.binaryMessenger, CHANNEL).
        setMethodCallHandler{ call, result ->
            if (call.method.equals("customizar")){
                kotlin_class.customizar()
            }
        }
    }

}

【讨论】:

  • 仍然遇到同样的问题。
猜你喜欢
  • 2020-05-15
  • 1970-01-01
  • 2022-07-26
  • 2020-10-20
  • 2020-04-20
  • 2023-03-20
  • 2021-12-17
  • 2020-08-14
  • 1970-01-01
相关资源
最近更新 更多