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

gpfsuwkq  于 2022-12-19  发布在  Flutter
关注(0)|答案(5)|浏览(141)

我收到了MissingPlugin错误。我发现了很多关于这个错误的帖子。但我的情况有点不同。首先,我的项目在模拟器中运行良好,只有当我在物理Android上运行我的发布应用时,错误才会出现。其次,这个错误不仅仅与一个软件包有关。2我第一次遇到类似MissingPluginException的错误(在通道plugins.flutter.io/shared_preferences上找不到getAll方法的实现)在我放入代码后,我发现只能处理shared_preferences的问题。(在channel plugins.flutter.io/package_info上找不到getAll方法的实现)显然,该错误不仅仅与shared_preferences这样的一个包有关。
有什么主意吗?我怎样才能解决这个问题?

7gs2gvoe

7gs2gvoe1#

这是一个很多人都会犯的经典错误,你试图做的是把繁重的工作抽象到一个隔离体上,然而flutter隔离体除了flutter中的API和dart sdk之外,不能直接运行插件。
你有两个选择。
1.有一个插件我可以推荐,它不支持所有的flutter(第三方)插件,但它值得一试与您的. https://pub.dev/packages/flutter_isolate
这个插件创建了自动封送插件返回主隔离的隔离,而不会冒基础flutter隔离通常会抛出的运行时异常的风险。
1.只运行允许在基础flutter隔离中运行的繁重进程的源代码,只直接使用flutter & dart sdk apis。依赖于插件的其余代码将需要中继回主隔离,UI将不得不等待使用FutureBuilder的结果

pdkcd3nj

pdkcd3nj2#

尝试了网上找到的一些不同的解决方案,如清洁和重建。无收缩等。没有一个对我有效。
最后在建设。gradle,我改变了
类路径“com.android.tools.build:gradle:4.0.0”到类路径“com.android.tools.build:gradle:3.5.1”
之后,apk大小是以前的50%,应用程序加载良好。
所以可能是新的构建工具的问题。

mqkwyuun

mqkwyuun3#

FlutterActivity上缺少super.configureFlutterEngine(flutterEngine)

class MainActivity : FlutterActivity() {    
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine) //missing this
     
    }
}
4si2a6ki

4si2a6ki4#

我在一个旧的flutter应用程序上也遇到了同样的错误,在stable 3.0.2上运行,没有null safety。结果我使用了shared_preferences : ^5.4,它在调试时运行良好,但在Android上的发布模式下会导致插件崩溃
添加

minifyEnabled false
 shrinkResources false

android/app/build.gradle已修复此问题

bzzcjhmw

bzzcjhmw5#

有相同的问题,通过删除冗余插件指令修复:
之前:

flutter:
  uses-material-design: true
  plugin:
    platforms:
      android:
        package: com.kasem.receive_sharing_intent
        pluginClass: ReceiveSharingIntentPlugin
  assets:
    - assets/i18n/

之后:

flutter:
  uses-material-design: true
  assets:
    - assets/i18n/

相关问题