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

问题描述 投票:0回答:1

我在项目中使用workmanager插件。在此之前,我需要按照here所述进行平台设置。

对于Android设置,我遵循upgrade guide指示。

MainActivity.kt

package com.xxx

import io.flutter.embedding.android.FlutterActivity;

class MainActivity: FlutterActivity() {

}

manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xxx">

    <uses-permission android:name="android.permission.INTERNET" />

    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <application android:label="pegasus" android:usesCleartextTraffic="true" android:icon="@mipmap/ic_launcher">

        <meta-data android:name="flutterEmbedding" android:value="2" />

        <activity android:name="io.flutter.embedding.android.FlutterActivity" android:launchMode="singleTop" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize">
            <!-- This keeps the window background of the activity showing
                 until Flutter renders its first frame. It can be removed if
                 there is no splash screen (such as the default splash screen
                 defined in @style/LaunchTheme). -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            <intent-filter>
                <action android:name="FLUTTER_NOTIFICATION_CLICK"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>

            <meta-data android:name="io.flutter.embedding.android.SplashScreenDrawable" android:resource="@drawable/launch_background" />

            <!-- Theme to apply as soon as Flutter begins rendering frames -->
            <meta-data android:name="io.flutter.embedding.android.NormalTheme" android:resource="@style/NormalTheme" />
        </activity>
    </application>
</manifest>

但是我的项目停留在启动画面,这里是日志中的错误

输出终端问题530调试控制台E /颤振(26453):[错误:flutter / lib / ui / ui_dart_state.cc(157)]未处理的异常:MissingPluginException(未找到方法getAll的实现频道plugins.flutter.io/shared_preferences)

android flutter dart sharedpreferences android-workmanager
1个回答
0
投票

因此,可能有两件事。

  1. 在您的项目中包含shared_preferences软件包后,您可能没有重新启动应用程序。

  2. shared_preferences包中没有类似getAll()的东西。因此,请参阅软件包回购的文档或GitHub,以找到适当的方法。我认为其中定义了一个getKeys()方法,该方法将为您返回键列表。您可以使用它。

© www.soinside.com 2019 - 2024. All rights reserved.