我正在开发用于裁剪图像的应用程序,并且正在使用image_cropper和image_picker插件。
我正在从图像选择器中获取图像,然后使用路径提供程序将其保存到应用程序的文档目录中。
保存所有内容,文件存在于documents目录中。
当我尝试使用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();
},
),
),
);
}
已更新
答案 0 :(得分:0)
我的解决方案是使用Gallery saver包并将我的项目迁移到AndroidX。