美文网首页
Flutter MissingPluginException

Flutter MissingPluginException

作者: 戴维王 | 来源:发表于2020-07-29 14:43 被阅读0次

问题

Unhandled Exception: MissingPluginException(No implementation found for method pickImage on channel plugins.flutter.io/image_picker)

在我们使用第三方提供的Flutter或dart库时(比方说错误信息中的image picker图片选择库)有可能会出现上述错误,错误信息中提示找不到plugin,在 channel(plugins.flutter.io/image_picker) 中找不到 pickImage 方法。

解决办法

Flutter 版本是 pre 1.12 之前的,在MainActivity的 onCreate 方法中加上

import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;

public class MainActivity extends FlutterActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        GeneratedPluginRegistrant.registerWith(this);
    }
}

GeneratedPluginRegistrant是一个SDK生成的类,registerWith方法就是用来注册plugin的。
Flutter 版本已经更新到 pre 1.12 以后的,直接把 MainActivity 的超类 FlutterActivity 替换为 io.flutter.embedding.android.FlutterActivity,这样就无须在调用GeneratedPluginRegistrant.registerWith(flutterEngine)方法了,因为新的 FlutterActivity 类有一个方法

import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;

public class MainActivity extends FlutterActivity {

    @Override
    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
        super.configureFlutterEngine(flutterEngine);
    }
}

configureFlutterEngine 通过反射完成了对GeneratedPluginRegistrant.registerWith(flutterEngine)的调用。

相关文章

网友评论

      本文标题:Flutter MissingPluginException

      本文链接:https://www.haomeiwen.com/subject/ndmhrktx.html