java - 使用 getResources().openRawResource() 时有没有办法避免大小限制

标签 java android

当应用程序首次运行时,我尝试从 Android 项目中的 res/raw 文件夹加载 XML 文件。我用这一行来做到这一点:

InputStream xmlStream = getResources().openRawResource(R.raw.xmlfile);

然后我想使用 SAX 解析器从 XML 文件中获取数据。执行此操作时,LogCat 显示以下错误:

Data exceeds UNCOMPRESS_DATA_MAX (1290892 vs 1048576)

是否有 1MB 的限制?

经过几次 Google 搜索后,我发现有人将文件分割成 1MB 的 block ,但这些不是 XML 文件,因此我不确定在为我的 SAX 解析器创建 InputSource 之前如何重新加入它们。

我的文件不是由我创建的,因此我无法真正编辑它(尽管我可能必须这样做),并且如果我从 Internet 检索它,我的代码就可以工作。它的大小约为 1,300KB,因此我不想每次应用程序运行时都下载它

最佳答案

Is there anyway around this 1MB limit?

为您的文件提供一个在构建过程中不会被 aapt 压缩的扩展名。例如,我认为它会跳过压缩 .mp3 文件。

关于java - 使用 getResources().openRawResource() 时有没有办法避免大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976554/

相关文章:

java - Visual Studio - Cordova Android "transformClassesWithDexForDebug"错误

java - 是否可以使用表单调用 servlet?

java - 无法使用 GsonConverterFactory 在 Retrofit 2.0 中将子类对象转换为请求正文 json

java - Activity 生命周期

android - 登录成功后如何打开新 Activity -android应用

java - 如何在数组中生成随机 double ?

java - 如何在 Java 中查找整数数组中缺失的数字?

Android 将 unicode 字符串设置为 textview

java - 基于不同的和第二个谓词的过滤器列表

android - onItemCheckedStateChanged 调用了两次