Flutter MissingPluginException(在通道上找不到方法 getAll 的实现...)在发布应用程序中

dav*_*eng 7 flutter

我收到 MissingPlugin 错误。我发现了很多关于该错误的帖子。但我的情况有点不同。\n首先,我的项目在模拟器中运行良好,只有当我在物理 Android 上运行我的发布应用程序时才会出现该错误。\n其次,此错误不仅仅与一个包相关。我首先收到类似\nMissingPluginException(在通道plugins.flutter.io/shared_preferences上找不到方法getAll的实现)\n的错误\n在我放置代码后,我发现只能使用shared_preferences来处理问题。然后我得到了类似\nMissingPluginException(在通道plugins.flutter.io/package_info上找不到方法getAll的实现)\n的错误\n显然,该错误不仅仅链接到像shared_preferences这样的一个包。

\n

任何想法?我该如何解决这个问题\xef\xbc\x9f

\n

小智 6

super.configureFlutterEngine(flutterEngine)上缺席了FlutterActivity

class MainActivity : FlutterActivity() {    
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine) //missing this
     
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 4

这是很多人都会犯的典型错误。您想要做的是将繁重的工作抽象为isolate,但是flutterisolate无法直接运行flutter中的api和dart sdk之外的插件。

你有几个选择。

  1. 我可以推荐一个插件,它不支持所有 flutter(第 3 方)插件,但值得您尝试一下。 https://pub.dev/packages/flutter_isolate

该插件创建隔离,自动编组插件工作回主隔离,而不会冒基本颤动隔离通常会抛出的运行时异常的风险。

  1. 仅运行繁重进程的源代码,您可以直接使用 flutter & dart sdk api 在基础 flutter 隔离中运行。依赖于插件的其余代码需要转发回主隔离,并且 UI 必须使用 FutureBuilder 等待结果