2010-10-20 64 views
2

我想从我的Android项目中的res/raw文件夹加载应用程序第一次运行时的XML文件。我这样做这个行:有没有一种方法来避免使用getResources()时的大小限制openRawResource()

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

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

Data exceeds UNCOMPRESS_DATA_MAX (1290892 vs 1048576) 

究竟有没有这个1MB的限制?

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

我的文件不是由我创建的,所以我不能真正编辑它(尽管我可能必须),而且如果我从Internet检索它,我的代码就可以正常工作。及其周边的大小1,300KB,所以我想不必下载它每次应用程序运行

回答

5

Is there anyway around this 1MB limit?

给你的文件不会被aapt在构建过程中被压缩的延伸。例如,我认为它跳过了压缩.mp3文件。

+0

+1这是一种享受!非常感谢。稍后会回答这个问题,只是等待任何其他解决方案! – neildeadman 2010-10-20 12:44:53

+0

您好,先生,我也面临同样的问题。我试过你的解决方案,它的作品。但.mp3扩展名似乎不适合数据库文件。现在我想知道,哪些文件类型在Android中不压缩? (其他适当的扩展名比mp3,我可以使用我的数据库文件)。 – Mudassir 2010-12-22 04:11:49

+0

@Mudassir:.dat? 。D b?只是在这里猜测.. – 2013-11-13 10:06:53

相关问题