【问题标题】:Android Assets No Value Read?Android 资产没有价值读取?
【发布时间】:2010-06-14 01:36:52
【问题描述】:
        AssetManager assets = myContext.getAssets();
        String[] files = assets.list("MyFolder");
        InputStream myInput = assets.open("MyFolder/" + files[0]);
        int i = myInput.read();

在这种情况下,'i' 是 -1,表示没有读取任何内容。

如果文件在那里,为什么什么都没有,变量'files'也有文件。

我需要对放入 Assets 文件夹中的文件进行任何操作以使其可读吗?

注意:当我使用一个小文本文件时,它可以工作。当我使用 10 meg 文件时,它不会。 (10兆是我需要安装的Sqlite数据库)

【问题讨论】:

    标签: android assets


    【解决方案1】:

    将文件重命名为XXXXXX.png,这样它就不会被压缩,然后就可以复制过来了。

    【讨论】:

      【解决方案2】:

      您不能将 10MB 的文件放入 APK 中。您需要将其切成 10 个 1MB 的文件。更好的是,以其他方式分发数据库,​​例如在第一次运行应用程序时将其下载到 SD 卡。如果您的 APK 太大,许多用户将无法安装它。

      【讨论】:

      • 我发现一个谷歌工程师的帖子说问题是因为系统压缩了资源并且无法解压缩大于 1 兆的文件。解决方案是将数据库重命名为 XXXXX.png,使其不被压缩。然后一切正常。
      • 啊,对,我忘记了假文件扩展技巧。我很抱歉。
      猜你喜欢
      • 2018-03-26
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 2011-07-24
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多