【问题标题】:Android Assets with sub folders带有子文件夹的 Android 资产
【发布时间】:2010-06-13 21:02:35
【问题描述】:
InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");

我在上面的子文件夹中的资产文件夹中有一个文件。但是它没有获取文件,有没有特殊的方法可以在assets文件夹中指定一个子文件夹?

伊恩

【问题讨论】:

  • 这看起来是正确的——是否抛出了诸如 IOException 之类的异常?
  • 是的,但奇怪的是异常是空的,没有“原因”
  • 如果您可以将堆栈跟踪粘贴到原始问题中,那将非常有帮助。
  • 您是否有可能使用错误的语言环境加载输入流?

标签: android assets


【解决方案1】:

编辑:关于子文件夹的错误。
此代码在 1.5 上工作得很好(对于位于 assets 中的 sub 文件夹下的文件 sample.txt):

InputStream is = getAssets().open("sub/sample.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null) {
    Log.e("wtf", line);
}
br.close();

你确定你的名字是对的吗?

【讨论】:

    【解决方案2】:
    "MyFolder/" + "MyFile.db3"
    

    添加到资产文件夹的文件的文件名必须为小写字母。 因此,MyFolder 和 Myfile.db3 等文件名无效。将它们重命名为“myfolder”和“myfile.db3”,一切都会好起来的。

    【讨论】:

      【解决方案3】:

      您的资产文件是否超过 1 MB?

      我注意到,如果我尝试打开超过此大小的资产,我会得到同样奇怪的空 IOException。它位于子文件夹中的事实可能是一个红鲱鱼。我正在尝试打开一个大文本文件,以便可以通过拆分来解决此限制。你能用你的 .db3 文件做类似的事情吗?

      【讨论】:

      • omfg wtf!!!这是一个愚蠢的错误,他们应该解决这个问题。非常感谢您写下这个答案,这对我来说肯定是同样的情况,我在“music/blah.ogg”下有一个 .ogg 文件,但它不起作用,因为它远远超过 1 mb,但是另一个文件“music/ foo.ogg" 有效,它只有 26 kb...
      【解决方案4】:

      我遇到了类似的问题:将子文件夹名称从“mp3”更改为“mpthree”,找到了文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-14
        • 2019-05-23
        相关资源
        最近更新 更多