CELESTE
CELESTE
  • 发布:2020-09-21 17:14
  • 更新:2020-09-22 18:01
  • 阅读:1089

【报Bug】uni.getSavedFileList 真机调试一切正常,打包APP后无法获取filelist

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: WIN10

HBuilderX类型: 正式

HBuilderX版本号: 2.8.8

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: 小米

手机机型: 小米4S

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://service.dcloud.net.cn/build/download/f69182a0-fbe7-11ea-bd5d-2dffeaa2b0cc

操作步骤:

打开APP即可复现

预期结果:

如图所示

实际结果:

如图所示

bug描述:

uni.getSavedFileList 真机调试一切正常,打包APP(云端和离线打包都试过)后无法获取filelist

2020-09-21 17:14 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

你确认你打包安装后当前应用有存储文件吗?

  • CELESTE (作者)

    这个API是从固定路径获取文件的。

    同时,我确定我打包安装后当前应用有存储文件

    2020-09-23 09:28

  • DCloud_UNI_GSQ

    回复 CELESTE: 你有调用saveFile吗?

    2020-09-23 20:12

  • CELESTE (作者)

    回复 DCloud_UNI_GSQ: 项目里面有的。但是这个测试案列没有调用savefile

    2020-09-24 22:09

  • DCloud_UNI_GSQ

    回复 CELESTE: 你说的项目是指的什么?只有调用saveFile存储的文件才在SavedFileList里

    2020-09-25 11:03

  • CELESTE (作者)

    回复 DCloud_UNI_GSQ:

    我说的项目是指的我现在做的app哇。

    调用savefile后,会把临时存储的文件永久存储到“/storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/uniapp_save/”这个路径。


    我在这个贴子上所用的测试案列并没有调用savefile,但这个路径下是有文件的。

    所以,

    你在这个测试案列中可以看到,我在真机的调试中调用getsavefilelist是成功的,

    可是却在打包成app后调用获取不到值。

    —————————————————————————————————

    你的意思是无论此路径下有没有文件,调用getsavefilelist之前都必须调用savefile吗(打包成apk后)?

    2020-09-25 15:15

  • DCloud_UNI_GSQ

    回复 CELESTE: 我的意思是不同应用之间不能互相读取文件只能读取当前应用存储的,你打包的应用不能读取HBuilder基座里的文件。

    2020-09-25 18:59

  • DCloud_UNI_GSQ

    “/storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/uniapp_save/”这个路径不是你的应用,这是HBuilder基座

    2020-09-25 19:00

  • CELESTE (作者)

    回复 DCloud_UNI_GSQ:

    卧槽,惊呆了。那这个问题还得从长计议呀。


    因为我打包后的应用在调用savefile这个API后,

    他保存的文件路径同样是“/storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/uniapp_save/”。

    然而打包后的app使用getsavefilelist的时候是无法获取这个路径下的文件的。


    那么问题就在于savefile身上了,

    首先savefile的保存路径无法修改,

    其次按你的意思可以推断,打包后的应用调用savefile是不会保存到基座路径的。

    所以我出现这个情况是因为某个配置文件没有写好,还是打包出的问题呢?

    2020-09-26 09:48

  • DCloud_UNI_GSQ

    回复 CELESTE: 一般安卓上保存的路径:“/storage/emulated/0/Android/data/你的包名/apps/你的AppID/doc/uniapp_save/”

    2020-09-27 11:10

  • CELESTE (作者)

    回复 DCloud_UNI_GSQ: 谢谢,已解决。不是BUG

    2020-09-29 09:39

该问题目前已经被锁定, 无法添加新回复