2010-10-20 65 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

相關問題