伙计们!我面对的是这个相机版本。它发生在我合并我的项目之后。它说没有可用的相机,但当时它运行良好。请看一看!
E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: PlatformException(no_available_camera, No cameras available for taking pictures., null, null)
#0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:582:7)
#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:18)
<asynchronous suspension>
#2 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12)
#3 MethodChannelImagePicker.pickImagePath (package:image_picker_platform_interface/src/method_channel/method_channel_image_picker.dart:62:21)
#4 MethodChannelImagePicker.pickImage (package:image_picker_platform_interface/src/method_channel/method_channel_image_picker.dart:30:25)
#5 ImagePicker.getImage (package:image_picker/image_picker.dart:101:21)
#6 _ImageEvaluationState.getImage (package:PhotoEarn/screens/camera/image_evaluation.dart:201:38)
#7 _ImageEvaluationState.build.<anonymous closure> (package:PhotoEarn/screens/camera/image_evaluation.dart:1099:33)
#8 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19)
#9 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1111:38)
#10 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24)
#11 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11)
#12 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5)
#13 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:259:7)
#14 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157:27)
#15 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:362:20)
#16 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22)
#17 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11)
#18 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7)
#19 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7)
#20 GestureBinding._handlePointerDataPacket …Run Code Online (Sandbox Code Playgroud) 我正在使用 Riverpod 提供程序类来处理从图库中选取图像。但是,一旦选择了图像,我就会收到错误:PlatformException(multiple_request,由第二个请求取消 null,null)。不确定第二个请求来自哪里。更重要的是,由于这种未知的取消,没有图像应用于我的占位符(CircleAvartar)。这是有问题的两个 dart 文件,感谢您的帮助。
图像提供者文件:
final myImageProvider =
ChangeNotifierProvider<ImageNotifier>((ref) => ImageNotifier());
class ImageNotifier extends ChangeNotifier {
ImageNotifier() : super();
final file = useState<File?>(null);
final imageFile = useState<XFile?>(null);
final imagePicker = ImagePicker();
Future<void> _pickImage(int type) async {
try {
XFile? userImage = await imagePicker.pickImage(
source: type == 1 ? ImageSource.gallery : ImageSource.camera,
imageQuality: 50,
);
imageFile.value = userImage;
// imageFile.value = XFile(userImage!.path);
} catch (e) {
print(e);
}
notifyListeners();
}
void showPicker(context) {
showModalBottomSheet(
backgroundColor: Theme.of(context).primaryColor,
context: context,
builder: …Run Code Online (Sandbox Code Playgroud) 我目前正在使用这些版本: flutter : 2.16.0 image_picker : ^0.8.4+7
图像选择器不工作。运行应用程序后,当我单击按钮激活功能时pickImage,运行突然停止,应用程序崩溃并停止。在调试时,我收到的唯一消息是:
与设备的连接丢失。
这是代码:
import 'dart:io';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:hipocampus_editors/widgets/textformfield_widget.dart';
import 'package:image_picker/image_picker.dart';
class AddSystemPage extends StatefulWidget {
const AddSystemPage({Key? key}) : super(key: key);
@override
_AddSystemPageState createState() => _AddSystemPageState();
}
class _AddSystemPageState extends State<AddSystemPage> {
final _formKey = GlobalKey<FormState>();
File? image1;
Future pickImage() async{
final image = await ImagePicker().pickImage(source: ImageSource.gallery);
if (image == null) return;
final imageTemporary = File(image.path);
setState(() {
image1 = imageTemporary;
});
}
@override
Widget build(BuildContext …Run Code Online (Sandbox Code Playgroud) 我正在使用image_picker: ^0.6.2+3包从图库中选择图像/拍照。
File picture = await ImagePicker.pickImage(
maxWidth: 800,
imageQuality: 10,
source: source, // source can be either ImageSource.camera or ImageSource.gallery
maxHeight: 800,
);
Run Code Online (Sandbox Code Playgroud)
我得到picture.path为
/用户/[一些路径]/tmp/image_picker_A0EBD0C1-EF3B-417F-9F8A-5DFBA889118C-18492-00001AD95CF914D3.jpg
现在我想将图像重命名为case01wd03id01.jpg
注意:我不想将其移动到新文件夹
我该如何重命名?我在官方文档中找不到它。
我正在 Flutter 中开发一个移动应用程序,它需要用户从图库中选择一个图像。
我正在使用 image_picker: ^0.6.7+11 这是我的代码:
if (await Permission.photos.request().isGranted) {
try {
final image =
await ImagePicker().getImage(source: ImageSource.gallery);
if (image != null) {
photo.clearData();
File _image = File(image.path);
photo.addOriginal(_image);
} else {
print('no image selected');
}
} on PlatformException catch (e) {
print('Platform exception $e');
} catch (e) {
print('Unknown error: $e');
}
}
Run Code Online (Sandbox Code Playgroud)
在 android 模拟器中,一切正常。在 iOS 模拟器中,我可以选择一个图像,但如果我尝试选择第二个图像,则应用程序会崩溃并显示“与设备的连接丢失”。打印在运行选项卡中 - 但没有错误。
问题:如何解决此问题,以便我可以返回图库并在 iOS 上根据需要多次选择不同的图像?
调试时我遇到了这个:
PlatformException(multiple_request, Cancelled by a second request, null, null)
Run Code Online (Sandbox Code Playgroud)
我已经在这里、GitHub 等上找到了尽可能多的类似问题......我有:
我运行 flutter 的插件image_picker示例。
当我从图库中一张一张地挑选图像时,内存不断增加。理想情况下,memory should jump back因为它at most select one image在这个示例应用程序中。
class _MyHomePageState extends State<MyHomePage> {
File _imageFile; <-- this one keep the file of selected image.
dynamic _pickImageError;
bool isVideo = false;
VideoPlayerController _controller;
String _retrieveDataError;
void _onImageButtonPressed(ImageSource source) async {
...
try {
_imageFile = await ImagePicker.pickImage(source: source); <--- how to set value
setState(() {});
} catch (e) {
_pickImageError = e;
}
...
}
@override
Widget build(BuildContext context) {
...
Image.file(_imageFile); …Run Code Online (Sandbox Code Playgroud) 我想从选定的多个图像中获取图像路径,我正在使用此链接选择多个图像,但我获得了资产,我想要来自选定的多个图像的路径,因为我想上传到 API 中。我在pubspec.yaml如果有什么好的方法可以做到这一点,请告诉我
multi_image_picker: ^4.6.3
Run Code Online (Sandbox Code Playgroud)
这是我的文件上传类,这个 UI 看起来类似于 Facebook。
import 'dart:typed_data';
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:multi_image_picker/multi_image_picker.dart';
class UpdateStatus extends StatefulWidget {
@override
_UpdateStatusState createState() => _UpdateStatusState();
}
class _UpdateStatusState extends State<UpdateStatus> {
List<Asset> images = List<Asset>();
String _error = 'No Error Dectected';
Future<ByteData> byteData;
// List<int> imageData = byteData.buffer.asUint8List();
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Create Post'),
actions: <Widget>[
Padding(
padding: …Run Code Online (Sandbox Code Playgroud) 如何在 iOS 上直接选择 jpg 或 png 格式的图片?如果此功能不可用:如何快速转换而不需要等待很长时间?
编辑:我想防止选择 .heic,因为我必须将其发送到服务器,该服务器处理 jpg 和 png 而不是 .heic
我将“image_picker:^0.8.4+11”包添加到我的项目中。添加后返回此错误。
出了什么问题:配置项目“:flutter_plugin_android_lifecycle”时出现问题。
无法解析配置“:flutter_plugin_android_lifecycle:classpath”的所有工件。找不到 gradle-3.5.0.jar (com.android.tools.build:gradle:3.5.0)。在以下位置搜索: https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.5.0/gradle-3.5.0.jar
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
在https://help.gradle.org获取更多帮助
3 秒内构建失败异常:Gradle 任务 assembleDebug 失败,退出代码为 1