web-dev-qa-db-fra.com

Flutter: exception non gérée: MissingPluginException (aucune implémentation trouvée pour la méthode getAll sur le canal plugins.flutter.io/shared_preferences)

Mon application Flutter utilise le plugin Flutter SharedPreferences et envoie des valeurs au côté iOS avec platform.invokeMethod. Si je démarre l'application, j'ai cette erreur:

[VERBOSE-2:Dart_error.cc(16)] Unhandled exception:
MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
#0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.Dart:278:7)
<asynchronous suspension>
#1      SharedPreferences.getInstance (package:shared_preferences/shared_preferences.Dart:25:27)
<asynchronous suspension>
#2      main (file:///Users/Developer/workspace/flutter-app/q_flutter2/lib/main.Dart:25:53)
<asynchronous suspension>
#3      _startIsolate.<anonymous closure> (Dart:isolate/runtime/libisolate_patch.Dart:279:19)
#4      _RawReceivePortImpl._handleMessage (Dart:isolate/runtime/libisolate_patch.Dart:165:12)

Si je commente la fonction pour envoyer la valeur au côté iOS, l'erreur ne s'affiche pas et les SharedPreferences fonctionnent.

Quelqu'un peut m'aider?

13
camilleB

Dans mon cas, la réinstallation de l'application n'a pas fonctionné.

Accédez plutôt à AppDelegate.m chemin du fichier ios/runner/AppDelegate.m:

#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"

@import Firebase;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [FIRApp configure];
    [GeneratedPluginRegistrant registerWithRegistry:self];
    return [super application:application didFinishLaunchingWithOptions:launchOptions];
}


@end

Supprimez ensuite votre application de l'appareil, puis réexécutez l'application.

0
Abel Tilahun

Peut-être que cela aidera si les réponses ci-dessus ne fonctionnent pas. Lors de la création du projet Android flutter studio, j'ai oublié de cocher les cases pour inclure la prise en charge kotlin pour Android/Swift pour iOS. Il en était ainsi parce qu'après flutter clean et flutter run mon projet n'a pas fonctionné.

0
Omi