Я разрабатываю приложение для обрезки изображений и использую плагины image_cropper и image_picker.
Я получаю изображение из средства выбора изображений, а затем сохраняю его с помощью поставщика пути в каталоге документов приложения.
и все сохранено, и файл существует в каталоге документов.
Проблема возникает, когда я пытаюсь сохранить изображение в галерее с помощью плагина image_gallery_saver, и это дает мне следующее исключение:
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 android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err( 2726): at android.os.MessageQueue.next(MessageQueue.java:336)
W/System.err( 2726): at android.os.Looper.loop(Looper.java:174)
W/System.err( 2726): at android.app.ActivityThread.main(ActivityThread.java:7356)
W/System.err( 2726): at java.lang.reflect.Method.invoke(Native Method)
W/System.err( 2726): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
W/System.err( 2726): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
W/System.err( 2726): Caused by: android.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 android.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();
},
),
),
);
}
ОБНОВЛЕНО
- fileImage.path = / data / user /0/com.example.cropy/app_flutter/image1.png