美文网首页
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