You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter调用takePicture报错:位置参数过多,预期0个找到1个如何解决?

报错原因

0.10.0及以上版本的Flutter camera插件对takePicture()方法做了API不兼容升级:该方法不再支持传入自定义存储路径作为位置参数,调用时无需传参,执行后会自动返回XFile类型的拍摄结果对象。

修复步骤

  • 删除takePicture()调用时传入的path参数,接收方法返回的XFile实例
  • 调用XFile实例的saveTo()方法,将拍摄的照片存储到你预先拼接好的目标路径

修正后完整代码

import 'package:camera/camera.dart';

void _takePicture() async {
    try {
        await _initializeControllerFuture;

        final tmpDirectory = await getTemporaryDirectory();
        final filePath = '${DateTime.now().millisecondsSinceEpoch}.png';
        final path = join(tmpDirectory.path, filePath);

        // 调整拍照逻辑
        final XFile capturedImage = await _controller.takePicture();
        await capturedImage.saveTo(path);

        widget.didProvideImagePath(path);
    } catch (e) {
        print(e);
    }
}

内容的提问来源于stack exchange,提问作者gs97ahn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:54:05