Java Android OutOfMemoryError

Java Android OutOfMemoryError,java,android,heap,saxparser,xml-parsing,Java,Android,Heap,Saxparser,Xml Parsing,我的应用程序在尝试使用SAXParser解析大型XML文件时崩溃。 我在SO中发现一个关于它的问题没有回答。 当我减小XML的大小时,它正在按预期工作 这是我的LogCat输出 11-26 12:08:45.099: WARN/dalvikvm(218): threadid=17: thread exiting with uncaught exception (group=0x4001aa28) 11-26 12:08:45.109: ERROR/AndroidRuntime(218): Unc

我的应用程序在尝试使用SAXParser解析大型XML文件时崩溃。
我在SO中发现一个关于它的问题没有回答。
当我减小XML的大小时,它正在按预期工作
这是我的LogCat输出

11-26 12:08:45.099: WARN/dalvikvm(218): threadid=17: thread exiting with uncaught exception (group=0x4001aa28)
11-26 12:08:45.109: ERROR/AndroidRuntime(218): Uncaught handler: thread Thread-9 exiting due to uncaught exception
11-26 12:08:45.220: ERROR/AndroidRuntime(218): java.lang.OutOfMemoryError
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at java.lang.Object.internalClone(Native Method)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at java.lang.Object.clone(Object.java:82)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:141)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at java.lang.StringBuilder.append(StringBuilder.java:282)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at   com.google.android.iopex.SaxXMLHandler.characters(SaxXMLHandler.java:24)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at org.apache.harmony.xml.ExpatParser.text(ExpatParser.java:166)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at org.apache.harmony.xml.ExpatParser.append(Native Method)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:506)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:467)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:329)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:286)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at javax.xml.parsers.SAXParser.parse(SAXParser.java:361)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at javax.xml.parsers.SAXParser.parse(SAXParser.java:240)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at com.google.android.iopex.SaxParser.parse(SaxParser.java:22)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at com.google.android.iopex.iOPEXActivity$4.run(iOPEXActivity.java:112)
11-26 12:08:45.220: ERROR/AndroidRuntime(218):     at java.lang.Thread.run(Thread.java:1060)

是我用来解析的代码吗?

android有堆限制,从文件中分块读取XML数据并方便地解析它

忍者编辑:


根据:通过读取20-30个条目缓存
列表
,更有意义

有什么方法可以使用SQLite数据库而不是XML文件来处理数据吗?我正在解析XML文件并将其存储到SqliteDB mate中。!我不确定是解析本身造成的,还是列表中的存储变得太大。如果是后者,则尝试直接将数据推送到sqlite DB,而不是将其存储在列表中。可能效率较低,但有大量记录可能是更好的解决方案。或者缓存20-30个条目并将其刷新到数据库中,清除列表并缓存另一个20-30个条目谢谢,伙计,我的列表变得巨大..问题解决。。