HarmonyOS鸿蒙Next中flutter_image_gallery_saver保存图片

HarmonyOS鸿蒙Next中flutter_image_gallery_saver保存图片 在手机nova 更新到5.1.0.150后 使用插件报错 之前没有更新 没有问题 api 版本是17

Invalid input parameter.

at BusinessError (/usr1/hmos_for_system/src/increment/sourcecode/foundation/multimedia/media_library/frameworks/js/src/photoaccesshelperinf.js:50:1)

at showAssetsCreationDialogParamsOk (/usr1/hmos_for_system/src/increment/sourcecode/foundation/multimedia/media_library/frameworks/js/src/photoaccesshelperinf.js:370:1)

at showAssetsCreationDialog (/usr1/hmos_for_system/src/increment/sourcecode/foundation/multimedia/media_library/frameworks/js/src/photoaccesshelperinf.js:378:1)

at save (ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets:101:46)

at saveImageToGallery (ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets:125:18)

更多关于HarmonyOS鸿蒙Next中flutter_image_gallery_saver保存图片的实战教程也可以访问 https://www.itying.com/category-92-b0.html

3 回复

尊敬的开发者您好,

1.请问您在项目中是如何使用该插件的?

flutter_image_gallery_saver该库的官方demo是否能直接复现?库地址:https://gitcode.com/openharmony-sig/flutter_image_gallery_saver/tree/master

如官方demo无法复现,您可以提供最小的复现代码(如最小复现demo)吗?

2.您使用的flutter版本是?

更多关于HarmonyOS鸿蒙Next中flutter_image_gallery_saver保存图片的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


HarmonyOS Next中flutter_image_gallery_saver插件无法直接使用。该插件依赖Android/iOS原生平台通道,而鸿蒙Next是独立操作系统,不兼容这些接口。目前官方未提供适配鸿蒙的版本。如需在鸿蒙Next中保存图片,需使用ArkTS/ArkUI开发,通过鸿蒙媒体库管理API(如@ohos.file.photoAccessHelper)实现。

这个错误表明在HarmonyOS Next 5.1.0.150版本中,调用flutter_image_gallery_saver插件保存图片时,系统多媒体库(photoAccessHelper)检测到了无效的输入参数。

从堆栈信息看,错误发生在showAssetsCreationDialog方法中,这是系统相册模块用于创建资源(保存图片)的API。在API 17(HarmonyOS Next 5.1.0对应的版本)中,系统对媒体库的访问权限和参数校验可能进行了更严格的限制。

可能的原因和排查方向:

  1. 权限问题:HarmonyOS Next 5.1.0可能引入了更严格的运行时权限检查。请确保应用已正确声明并动态申请了ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEO权限。

  2. 路径或URI格式:传递给photoAccessHelper的图片保存路径或URI格式不符合新版本的要求。检查插件生成的临时文件路径或提供的URI是否有效,并符合HarmonyOS Next媒体库的规范(如使用正确的file://前缀或dataability://格式)。

  3. 文件格式或损坏:尝试保存的图片数据可能已损坏,或格式不被新版本系统识别。确保图片数据是完整的、有效的JPEG或PNG格式。

  4. 插件兼容性flutter_image_gallery_saver插件本身可能尚未完全适配HarmonyOS Next 5.1.0.150的API变更。需要检查插件是否调用了已废弃或不兼容的底层API。

建议的解决步骤:

  • 首先,在应用的module.json5配置文件中确认权限声明完整。
  • 在调用保存前,确保已通过abilityAccessCtrl相关API动态申请并获得了必要的读写媒体文件权限。
  • 检查插件源码中构建保存参数的部分,确认生成的SaveDialogOptions(或类似参数)中的titledescriptionuri等字段是否有效且非空。
  • 尝试保存一个已知良好的、简单的图片文件,以排除数据源问题。
  • 关注该插件的HarmonyOS Next适配更新,或考虑暂时使用更底层的@ohos.multimedia.mediaLibrary@ohos.file.fs API实现图片保存功能,以绕过插件可能存在的兼容性问题。

错误信息明确指出是参数无效,因此重点应放在检查传递给系统API的所有输入值上。

回到顶部