【问题标题】:Exception trying to read raw resource file [Android]尝试读取原始资源文件的异常 [Android]
【发布时间】:2011-12-21 06:05:27
【问题描述】:

我正在尝试从 Android(Java)上的原始资源文件中读取数据。 出于某种原因, inStream.read(txt) 导致引发异常。 谁能告诉我我做错了什么? 我需要设置权限吗?

try
{
        resourceId = R.raw.testmodel;
    if( resourceId==0 )
        return false; // invalid id

    InputStream inStream = context.getResources().openRawResource(resourceId);

    if( inStream==null )
        return false;

    byte[] txt = new byte[512];
    inStream.read(txt);
    //Toast.makeText(context,new String(txt),Toast.LENGTH_LONG).show();
    inStream.close();
}catch(Exception e)
{
    Toast.makeText(context,"strange exception",Toast.LENGTH_LONG).show();
    return false;
}

【问题讨论】:

  • 抛出了什么异常。日志猫说什么?
  • logcat 说我超出了最大数据 0_o 我没想到会这样。我不知道现在该怎么办。
  • 文件大小是多少?
  • 目前大约 1.91MB,但我打算稍后再插入更多数据...

标签: android exception resources


【解决方案1】:

压缩的 apk 文件中的资产和原始数据有 1MB 的限制。

在 2.3 版中删除了限制。

可能的解决方法是 1) 将文件分成 1MB 的块。 2) 为文件名提供“mp3”扩展名。具有某些特定扩展名的文件默认不压缩,因此不受“压缩”资产的限制。扩展名“mp3”属于例外。

更多信息:

https://stackoverflow.com/questions/2860157/load-files-bigger-than-1m-from-assets-folder

https://stackoverflow.com/questions/1273300/ioexception-while-reading-from-inputstream

【讨论】:

    猜你喜欢
    • 2011-05-04
    • 2013-10-09
    • 2015-11-18
    • 2014-02-03
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多