未处理的异常:MissingPluginException(对于 Flutter 上的许多包,在通道 plugins.flutter.io/ 上找不到方法 getAll 的实现

Posted

技术标签:

【中文标题】未处理的异常:MissingPluginException(对于 Flutter 上的许多包,在通道 plugins.flutter.io/ 上找不到方法 getAll 的实现【英文标题】:Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/ for many packages on Flutter 【发布时间】:2020-08-19 20:57:09 【问题描述】:

当我在 ios 上运行我的颤振应用程序但在 android 上运行时出现以下错误:

未处理的异常:MissingPluginException(在通道 plugins.flutter.io/cloud_firestore 上找不到方法 DocumentReference#setData 的实现)

未处理的异常:MissingPluginException(在通道 plugins.flutter.io/shared_preferences 上找不到方法 getAll 的实现)

【问题讨论】:

【参考方案1】:

我关注了这个:https://github.com/flutter/flutter/issues/10912

更具体地说,对于第 4 步,我正在运行 Kotlin、Swift 版本的 Flutter。当我设置 Firebase 时,我不小心复制了 Firebase 上提供给我的初始化代码,用于一个新的 IOS 应用程序,我们不应该为 Flutter 这样做。所以我最终创建了一个新的 Flutter 项目,将 ios/Runner/AppDelegate.swift 复制到我的 Flutter 项目的同一目录中。

import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate 
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool 
    GeneratedPluginRegistrant.register(with: self)

    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  



对于使用 Objective C 的 IOS,您需要将 AppDelegate.m 文件复制到 ios/Runner/AppDelegate.m 目录下

对于使用 Java 的 Android,您需要复制 MainActivity.java 文件。 对于使用 Kotlin 的 Android,您将复制 MainActivity.kt 文件。

android 目录:android/app/src/main/kotlin/com/example/YOUR APP NAME/MainActivity.java 或 MainActivity.kt

【讨论】:

以上是关于未处理的异常:MissingPluginException(对于 Flutter 上的许多包,在通道 plugins.flutter.io/ 上找不到方法 getAll 的实现的主要内容,如果未能解决你的问题,请参考以下文章

SQL 异常未处理 - System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常

如何生成未处理的 MFC 异常?

Elasticsearch未分配分片异常处理

在 mvc 中处理请求时发生未处理的异常

捕获未处理的异常

如何在未处理的任务异常上崩溃?