无法在 iOS 模拟器上使用颤振图像选择器选择图像
Posted
技术标签:
【中文标题】无法在 iOS 模拟器上使用颤振图像选择器选择图像【英文标题】:Unable to select image using flutter image picker on iOS simulator 【发布时间】:2021-05-12 04:22:34 【问题描述】:我正在学习如何从图库中选择图像。我已经实现了同样的颤振图像选择器。但是当我尝试在模拟器中选择图像时,我无法这样做。
请帮忙
颤振医生
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 1.26.0-17.3.pre, on macOS 11.1 20C69 darwin-arm, locale en-IN)
[✓] android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for ios and macOS
[✓] Android Studio (version 4.1)
[✓] Connected device (1 available)
• No issues found!
我的代码
import 'dart:io';
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
void main()
runApp(MaterialApp(
home: Play(),
// theme: ThemeData.dark(),
));
class Play extends StatefulWidget
@override
_PlayState createState() => _PlayState();
class _PlayState extends State<Play>
File _file;
ImagePicker _picker = ImagePicker();
PickedFile _pickedFile;
Future _getImageFromGallery() async
print("Getting Image from Gallery.");
_pickedFile = await _picker.getImage(source: ImageSource.gallery);
print(_pickedFile.path);
setState(()
_file = File(_pickedFile.path);
);
Future _getImageFromCamera() async
print("Getting Image from Camera.");
_pickedFile = await _picker.getImage(source: ImageSource.camera);
setState(()
_file = File(_pickedFile.path);
);
@override
Widget build(BuildContext context)
return Scaffold(
appBar: AppBar(
title: Text("Play"),
),
body: Column(
children: [
Center(
child: ElevatedButton(
onLongPress: _getImageFromCamera,
onPressed: _getImageFromGallery,
child: Text("Get Image")),
),
_file != null
? Image.file(
_file,
height: 200,
)
: Icon(
Icons.image,
size: 100,
),
],
),
);
我正在使用 M1 Mac air。我已切换到 beta 频道以摆脱一些冗长的错误。 一切正常。只是,当我单击图像时,什么也没有发生。它没有被选中。
【问题讨论】:
上传图片有什么问题吗? 你有没有在你的ios/info.plist
上添加相机权限?
是的,我添加了<key>NSPhotoLibraryUsageDescription</key> <string>Need to access gallery in order to get image.</string> <key>NSCameraUsageDescription</key> <string>Need to access camera in order to get image.</string> <key>NSPhotoLibraryAddUsageDescription</key> <string>Add photo liabrary description</string>
相同的代码在 windows 上完美运行
我也有同样的问题。有没有找到解决办法
【参考方案1】:
我已经在我的模拟器上尝试过你的代码:
网上有讨论,包括this GitHub post,认为这可能是 Apple 的错误,没有已知的解决方法。
其实Apple Developer Forums里也有人举报这种问题。
【讨论】:
以上是关于无法在 iOS 模拟器上使用颤振图像选择器选择图像的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 图像选择器在带有 Mac M1 芯片模拟器的 ios 14 中不起作用
无法在 vscode 上运行 android 或 iOS 模拟器进行颤振
属性 android:requestLegacyExternalStorage 未找到颤振图像选择器