web-dev-qa-db-ja.com

Flutter:未処理の例外:MissingPluginException(チャネルplugins.flutter.io/shared_preferencesでメソッドgetAllの実装が見つかりません)

私のFlutterアプリケーションはFlutter SharedPreferencesプラグインを使用して、platform.invokeMethodでiOS側に値を送​​信します。アプリケーションを起動すると、次のエラーが発生します。

[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)

IOS側に値を送​​信する関数にコメントを付けると、エラーが表示されず、SharedPreferencesが機能します。

誰かが私を助けることができますか?

13
camilleB

私の場合、アプリケーションの再インストールは機能しませんでした。

代わりに、AppDelegate.m ファイルパス 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

次に、デバイスからアプリケーションを削除し、アプリケーションを再度実行します。

0
Abel Tilahun

上記の回答が機能しない場合は、これが役立つかもしれません。 Android studio flutterプロジェクトを作成しているときに、Android/Swift support for iOS。フラッターをクリーンにしてフラッターを実行した後、プロジェクトが機能しなくなったためです。

0
Omi