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

Posted

技术标签:

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

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

找不到任何问题

飞镖代码:

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() 

【问题讨论】:

您的代码看起来不错,至少从您分享的内容来看是这样。您是否尝试过重新加载 您的应用,不要热重新加载 【参考方案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()
            
        
    


【讨论】:

仍然遇到同样的问题。

以上是关于MissingPluginException(未找到通道上的方法的实现)的主要内容,如果未能解决你的问题,请参考以下文章

尝试在后台执行操作时出现 MissingPluginException

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

搜索#N/A!在工作表中,如果找到则为 msgbox,未找到时为其他子

GoogleMaps Flutter 插件 MissingPluginException

发布模式android中的MissingPluginException

尝试直接从 FLUTTER 发出呼叫:MissingPluginException(未找到方法 callNumber 的实现