Android - 使用SAX解析器解析大文件

时间:2011-02-14 11:54:33

标签: android

  • 我正在尝试使用SAX解析器解析来自webservice的xml数据,当我尝试使用URL解析数据(大小:7.4MB)时,它工作正常,但是当我从URL复制xml数据时并将xml文件(大小:7.4MB)放在原始文件夹中,解析失败。

  • 当放置在原始文件夹中的文件大小减少到1.95MB时,它可以正常工作。我试过洗牌以检查数据是否有任何问题,我没有发现任何问题。只要尺寸不超过1.95MB,它就能正常工作。从android中的原始文件夹解析数据时是否有任何大小限制?如果是的话是什么限制?或者如何使用SAX解析器解析大文件?

任何指针都会对我有所帮助。提前感谢您的时间和任何帮助。

此致 拉梅什

02-14 17:35:35.651: DEBUG/asset(11035): Data exceeds UNCOMPRESS_DATA_MAX (2138421 vs 2097152) 
02-14 17:35:35.651: WARN/dalvikvm(11035): threadid=9: thread exiting with uncaught exception (group=0x4001d7d0) 
02-14 17:35:35.659: ERROR/AndroidRuntime(11035): FATAL EXCEPTION: Thread-13 
02-14 17:35:35.659: ERROR/AndroidRuntime(11035): java.lang.AssertionError: java.io.IOException 
02-14 17:35:35.659: ERROR/AndroidRuntime(11035): at android.util.Xml.parse(Xml.java:89) 

try { 
    System.out.println("1"); 
    //Xml.parse((url.openConnection().getInputStream()), Encoding.UTF_8, datahandler); 
    Xml.parse(getResources().openRawResource(R.raw.sample), Encoding.UTF_8, datahandler); 
    System.out.println("2"); 
    //xr.parse(new InputSource(getAssets().open("sample.xml")));
}catch(Exception e){ 
    System.out.println("Ramesh"+"XML Parsing exception:"+e);
}

错误

Android DEBUG/asset(11035): Data exceeds UNCOMPRESS_DATA_MAX (2138421 vs 2097152) 
WARN/dalvikvm(11035): threadid=9: thread exiting with uncaught exception (group=0x4001d7d0) 
ERROR/AndroidRuntime(11035): FATAL EXCEPTION: Thread-13 
ERROR/AndroidRuntime(11035): java.lang.AssertionError: java.io.IOException 
ERROR/AndroidRuntime(11035): at android.util.Xml.parse(Xml.java:89) 
ERROR/AndroidRuntime(11035): at com.infosys.gss.ui.Login$2$1.run(Login.java:431) 
ERROR/AndroidRuntime(11035): Caused by: java.io.IOException

1 个答案:

答案 0 :(得分:0)

感谢您的评论。我找到了一个解决方法,感谢Brian在这里发布了解决方案'http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/'。这个链接对我很有帮助。