有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Flatter中将图像保存到gallery?

我正在开发一个应用程序来裁剪图像,我正在使用image_cropper和image_picker插件

我从图像选择器获取图像,然后使用路径提供程序将其保存到应用程序的文档目录

所有的东西都保存了,文件存在于documents目录下

当我尝试使用image_gallery_saver插件将图像保存到gallery时,出现了以下问题:

I/flutter ( 2726): /data/user/0/com.example.cropy/app_flutter/image1.png
I/flutter ( 2726): File: '/data/user/0/com.example.cropy/app_flutter/image1.png'
W/System.err( 2726): java.io.FileNotFoundException: /storage/emulated/0/Cropy/1579080598267.png: open failed: ENOENT (No such file or directory)
W/System.err( 2726):    at libcore.io.IoBridge.open(IoBridge.java:496)
W/System.err( 2726):    at java.io.FileOutputStream.<init>(FileOutputStream.java:235)
W/System.err( 2726):    at java.io.FileOutputStream.<init>(FileOutputStream.java:186)
W/System.err( 2726):    at kotlin.io.FilesKt__UtilsKt.copyTo(Utils.kt:205)
W/System.err( 2726):    at kotlin.io.FilesKt__UtilsKt.copyTo$default(Utils.kt:181)
W/System.err( 2726):    at com.example.imagegallerysaver.ImageGallerySaverPlugin.saveFileToGallery(ImageGallerySaverPlugin.kt:79)
W/System.err( 2726):    at com.example.imagegallerysaver.ImageGallerySaverPlugin.onMethodCall(ImageGallerySaverPlugin.kt:37)
W/System.err( 2726):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:222)
W/System.err( 2726):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:96)
W/System.err( 2726):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:656)
W/System.err( 2726):    at 安卓.os.MessageQueue.nativePollOnce(Native Method)
W/System.err( 2726):    at 安卓.os.MessageQueue.next(MessageQueue.java:336)
W/System.err( 2726):    at 安卓.os.Looper.loop(Looper.java:174)
W/System.err( 2726):    at 安卓.app.ActivityThread.main(ActivityThread.java:7356)
W/System.err( 2726):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err( 2726):    at com.安卓.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
W/System.err( 2726):    at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:930)
W/System.err( 2726): Caused by: 安卓.system.ErrnoException: open failed: ENOENT (No such file or directory)
W/System.err( 2726):    at libcore.io.Linux.open(Native Method)
W/System.err( 2726):    at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
W/System.err( 2726):    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
W/System.err( 2726):    at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
W/System.err( 2726):    at 安卓.app.ActivityThread$AndroidOs.open(ActivityThread.java:7255)
W/System.err( 2726):    at libcore.io.IoBridge.open(IoBridge.java:482)
W/System.err( 2726):    ... 16 more

保存图像的方法是:

Future saveImage(BuildContext context) async {
    await ImageGallerySaver.saveFile(fileImage.path);
    Scaffold.of(context).showSnackBar(
      SnackBar(
        backgroundColor: Colors.white,
        content: Text(
          'Image saved successfully!',
          style: TextStyle(
            color: Colors.cyan,
          ),
        ),
        action: SnackBarAction(
          label: 'OK',
          onPressed: () {
            Scaffold.of(context).hideCurrentSnackBar();
          },
        ),
      ),
    );
  }

更新

  • 文件图像。路径=/data/user/0/com。实例cropy/app_flatter/image1。巴布亚新几内亚

共 (1) 个答案

  1. # 1 楼答案

    我的解决方案是使用gallery saver软件包,将我的项目迁移到AndroidX