美文网首页
flutter使用image_picker报错:Platform

flutter使用image_picker报错:Platform

作者: 小欢_J | 来源:发表于2021-04-09 18:52 被阅读0次

    flutter使用image_picker报错:PlatformException(already_active, Image picker is already active,null)

    项目中使用flutter:1.22.4,image_picker:0.6.7,flutter_boost:1.71.1

    由于使用了flutter_boost,需要使用红框中的部分,所以不能继承FlutterActivity,然而这样,在我使用image_picker的时候,点击拍摄进入相机,第一次可以进入,再次点击就进不去了,还会报PlatformException(already_active, Image picker is already active,null)这个错,看了下image_picker的源码,发现在ImagePickerPlugin中

    于是找到ActivityPluginBinding,然后找到它的实现类FlutterEngineActivityPluginBinding,发现了addActivityResultListener放法和onActivityResult方法,

    ImagePickerDelegate刚好实现了ActivityResultListener,所以就走到了ImagePickerDelegate的onActivityResult方法里面,那么怎么才能在MainActivity走到这里呢?这里会发现我在onCreate方法创建了一个FlutterFragment(flutter_boost)方法,点进去,找到里面的onActivityResult方法

    FlutterFragment(flutter-boost)--->FlutterActivityAndFragmentDelegate(flutter-boost)--->ActivityControlSurface(flutter-boost)--->FlutterEnginePluginRegistry(flutter)--->ImagePickerDelegate(image-picker)

    经过这样的调用,就会走到ImagePickerDelegate的onActivityResult方法了,所以最后的解决方法是重写MainActivity的onActivityResult,调用FlutterFragment(flutter-boost)的onActivityResult方法

    最后,如果你继承的FlutterActivity就不会有这个问题了。

    相关文章

      网友评论

          本文标题:flutter使用image_picker报错:Platform

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