app 大部分应用都会调用本地相机 拍照等功能
那么在 flutter
里如何操作呢?
在 flutter
需要用到 image_picker
这个插件来获取图像
配置
首先 需要在 pubspec.yaml
文件中 添加 image_picker
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
url_launcher: ^5.1.1
image_picker: ^0.6.1 <== 添加插件
IOS
IOS 需要配置一些访问使用的说明
找到 /ios/Runner/Info.plist
文件 添加如下字段
<key>NSCameraUsageDescription</key>
<string>在这里配置相机使用说明</string>
<key>NSMicrophoneUsageDescription</key>
<string>在这里配置录音使用说明</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>在这里配置相册的使用说明</string>
Android
无需配置 但是 image_picker
是基于 Android X
所以需要兼容 Android X
根据下面的网址中 更改 Android
的一些配置文件
https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility
相关报错问题
关于 Android模拟器调用相册功能报错
本以为是配置文件 少配置了什么 检查了各种配置 还以为是版本不兼容什么问题
找了很多资料 依旧都是报错 比较烦躁
后面查到说 flutter clean
就行了 抱着将信将疑的态度试下了 结果好了
心情极其复杂 果然多踩坑 才能进步 [○・`Д´・ ○] [○・`Д´・ ○]
实例
关于运行后报错 ‘The method ‘map’ was called on null.’ 的问题
定义的 _images 需要初始化 List<File> _images = [];
以下是具体代码:
1 | e.g. |