flutter与安卓交互 MissingPluginException

新手上路,请多包涵

背景描述:是一个安卓和flutter混合开发的项目。

我有一个flutter的页面,在项目中的两个场景中使用到,其中都涉及了和原生安卓端的交互(showToast),第一处是安卓端直接嵌入这个页面,另一个是在flutter里面作为一部分使用。


问题在于,第一个页面里,能正确的调用安卓里的showToast方法,但是也报错。

E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method showToast on channel androidtoflutter/cowquery)
    #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:7)
    <asynchronous suspension>
    #1      _CowQuery.getCowInfo (package:cowflutter/cowQuery.dart:47:21)
    <asynchronous suspension>
    #2      _CowQuery.platformCallHandler (package:cowflutter/cowQuery.dart:195:9)
    <asynchronous suspension>
    #3      MethodChannel._handleAsMethodCall (package:flutter/src/services/platform_channel.dart:397:55)
    <asynchronous suspension>
    #4      MethodChannel.setMethodCallHandler.<anonymous closure> (package:flutter/src/services/platform_channel.dart:365:54)
    #5      _DefaultBinaryMessenger.handlePlatformMessage (package:flutter/src/services/binary_messenger.dart:110:33)
    <asynchronous suspension>
    #6      _invoke3.<anonymous closure> (dart:ui/hooks.dart:282:15)
    #7      _rootRun (dart:async/zone.dart:1124:13)
    #8      _CustomZone.run (dart:async/zone.dart:1021:19)
    #9      _CustomZone.runGuarded (dart:async/zone.dart:923:7)
    #10     _invoke3 (dart:ui/hooks.dart:281:10)
    #11     _dispatchPlatformMessage (dart:ui/hooks.dart:143:5)
    

然后作为flutter Widget中的一部分的使用中,没有显示toast,同时报错如下:

E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method showToast on channel androidtoflutter/cowquery)
    #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:7)
    <asynchronous suspension>
    #1      _CowQuery.getCowInfo (package:cowflutter/cowQuery.dart:47:21)
    <asynchronous suspension>
    #2      _CowQuery.initState (package:cowflutter/cowQuery.dart:235:9)
    #3      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4061:58)
    #4      ComponentElement.mount (package:flutter/src/widgets/framework.dart:3912:5)
    #5      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3094:14)
    #6      Element.updateChild (package:flutter/src/widgets/framework.dart:2897:12)
    #7      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3954:16)
    #8      Element.rebuild (package:flutter/src/widgets/framework.dart:3731:5)
    #9      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3917:5)
    #10     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3912:5)
    #11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3094:14)
    #12     Element.updateChild (package:flutter/src/widgets/framework.dart:2897:12)
    #13     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5120:14)
    #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3094:14)
    #15     Element.updateChild (package:flutter/src/widgets/framework.dart:2897:12)
    #16     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5120:14)
    #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3094:14)
    #18     Element.updateChild (package:flutter/src/widgets/framework.dart:2897:12)
    #19     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3954:16)
    #20     Element.rebuild (package:flutter/src/widgets/framework.dart:3731:5)
    #21     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3917:5)
    #22     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3912:5)
    #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3094:14)
    #24     Element.updateChild (package:flutter/src/widgets/framework.dart:2897:12)
    #25     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3954:16)
    #26     Element.rebuild (package:flutter/src/widgets/framework.dart:3731:5)
    #27     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3917:5)
    #28     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3912:5)
    #29     ParentDataElement.mount (package:flutter/src/widgets/framework.dart:4307:11)
    #30     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3094:14)
    #31     Element.updateChild (package:flutter/src/widgets/framework.dart:2897:12)
    #32     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3954:16)
    #33     Element.rebuild (package:flutter/src/widgets/framework.dart:3731:5)
    #34     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3917:5)
    #35     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4081:11)
    #36     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3912:5)
    #37     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3094:14)
    #38     Element.updateChild (package:flutter/src/widgets/framework.dart:2897:12)
    #39     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3954:16)
    #40     Element.rebuild (package:flutter/src/widgets/framework.dart:3731:5)
    #41     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3917:5)
    #42     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3912:5)
    #43     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3094:14)
    #44     Element.updateChild (package:flutter/src/widgets/framework.dart:2897:12)
    #45     SliverMultiBoxAdaptorElement.updat

基本一致,都是MissingPluginException(No implementation found for method showToast on channel androidtoflutter/cowquery)错误,但是行数不一样?


其实只要能显示toast就行,即使报错也没事,但是很奇怪,就是一个页面,使用场景不同,结果也不一样,限于才疏学浅,不知道原因和解决办法,期待路过大牛多多指教!感谢!!!

阅读 6.3k
2 个回答
✓ 已被采纳新手上路,请多包涵

是我智障了。两个场景的activity不一样。两个地方都要有channel的声明。不同页面的channel不能串通。

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题