开发者社区> 问答> 正文

该路径下的图片文件就打包不过去?:报错

为什么放在 data/data/包名/databases/下的数据库文件名可以打包到 apk 中,该路径下的图片文件就打包不过去?:报错

我将 数据库文件,还有图片文件  放在 assets 文件夹下 当启动程序的时候  将这些文件复制到  data/data/包名/databases/ 下面 可是 运行 apk 安装后 ,只能查询到数据库 图片却没显示出来。。。是不是 图片没有打包到 apk 中? 大家是怎么解决  打包apk  将图片文件等  一起打包的?因为 assets     res文件夹下  只能  读取 不能写入,而我又要 进行  下载更新数据库数据,向文件夹添加图片,所以只能将文件复制到 令一个 可写 路径下面,但是却没打包到 akp 中,或者打包进去了 成了压缩文件  。大家平时是怎么解决的啊?

展开
收起
kun坤 2020-06-07 14:02:12 586 0
1 条回答
写回答
取消 提交回答
  • 将图片放在assert目录下面,一定要注意,assert里面的资源文件不能超过1M,如果超过1M,那就是不能读出来的,如果文件太大,就分割。下载升级的时候,系统不会主动的将新软件assert目录里面的文件复制过去的,要自己判断的。如果发现是新软件,就重新复制一遍
    ######2.2是1M, 4.2的系统我试过,可以超过1M######没有人知道吗???????
    ######图片复制到SD卡上面吧!然后在数据库文件里面存储图片的地址信息就可以了!
    ######关键是,我们经理卖的产品上没有 SD卡,所以 他让我们把 应用 放到 产品自带 储存空间上面,我一直写的访问路径就是 sd卡 ,但是现在要改 要把图片放到 工程里面 然后复制到 哪我也不知道了,因为我 工程里面的 文件夹 全都试过了 打包 apk 后 图片都没 带过去,或许带过去了 也没访问到 ,因为 data 下的文件夹 都是不可见的。。。######数据库文件放在databases里面,其他的可以放在file文件里面啊!自己新建一个文件夹data/data/包名/file,然后将那些图片文件放进去就可以了!这个在软件初始化的时候做这个事情
    ######我在file里面创建了文件,但是运行的时候好像没有权限啊!放在SD卡里就没事!######他打包可以打进去吗?我之前做过 在data/data/包名/ 下面新建文件夹 放置 别的资源文件,也一样大报不进去的???######放在assert目录下面,软件初始化的时候再复制出来!或者res/raw目录下面也可以
    ######不是就因为这样 在查找图片 是时写 data/......./图片名 这个路径就是找不到的???######我是这样做的,不过我现在要实现的是打包问题,它一直就是 复制过去了,但是 apk 安装以后 就只读取了数据库文件,数据全都显示出来了,就是图片显示不出来。图片我也是复制过去的,还有的是 当启动应用 的时候 升级下载 下来的,不过这时候 就不是apk 带过去的图片了,关键现在是要 怎么把 先带的图片 打包到apk 安装apk 以后可以显示 图片。。。######

    引用来自“fneg”的答案

    将图片放在assert目录下面,一定要注意,assert里面的资源文件不能超过1M,如果超过1M,那就是不能读出来的,如果文件太大,就分割。下载升级的时候,系统不会主动的将新软件assert目录里面的文件复制过去的,要自己判断的。如果发现是新软件,就重新复制一遍
    可能我没有说清楚,我们升级不是升级软件,我们所谓的升级就是看用户本地数据库数据  跟我们服务器上数据库数据是否一样多,如果不一样就让他们下载 他们没有的数据到他们本地的数据库,就这样简单。不过你说的不能放太大资源的图片,可是我们需要在 assets 里面放几万张图片,占用空间是很大的。我们打包apk 要带到 apk 里面,当用户安装的时候 才可以把  图片等资源复制到 指定目录,如果太大不能读,怎么复制呢???你说的分割,是说 每次取少于  1M 的 长图片进行复制对吧?   现在就是   怎样 把图片打包到 apk 中 并能度 出来 ,复制全都做好了,就是放到真机上   只能读取到 数据库资源  ,图片资源读不到。是不是因为数据库  不用指定 到data/data/包名/databases /   读取,系统默认 就会将数据库生成在  data 目录下    而 data  目录在真机上又是不可见的 。是不是就因为这样在真机里面不显示    data/data/包名/      这些文件夹路径    所以在查找图片  时写 data/......./图片名  这个路径就是找不到的???
    ######

    可以放在其他的目录中吧,非得databases?

    ######楼主解决了吗,我最近也遇到类似的问题,如果解决了,请帖出来共享一下,拜谢了!######不好意思刚看到,你解决了么?我当时的问题有点郁闷,因为 同样的代码,我同事打包安装就可以显示,从我电脑上就无法显示,最好的是,你在 拿图片 或者 数据的 位置 打印一下你写的 获取文件全路径 (包括 取得文件 )看看是不是不存在,如果不存在 你试着换个 dada/data/包名/(随便在命名一个文件夹)但是不要跟数据表文件 在一个文件夹就行。。。。我当时是这样的######回复楼主: 楼主的方法我先试试!我把assert目录的文件读出来了,只能在data/data/包名/files里创建这些文件,但是我现在程序里不能读取这写文件;
    2020-06-07 14:02:16
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载