0
내 애플리케이션에서 대용량 XML 파일 (~ 1-2M)을 구문 분석하고 있습니다. 때때로 일부 파일을 구문 분석 할 때 구문 분석기가 에 실패합니다.XML 파서가 안드로이드에서 대용량 XML 파일 구문 분석에 실패하는 경우가 있음
증상 :
- 때때로 같은 파일 때로는 성공적으로 구문 분석 - 없습니다.
- 파일 구문 분석에 실패하면 파일을 다시 구문 분석 할 수 있으려면 약간의 시간이 걸립니다.
- SAX (XMLReader)와 Pull (XMLPullParser)의 두 가지 유형의 XML 파서 인 두 개를 모두 파일의 동일한 위치에서 사용할 수 없습니다.
- 필자는 파서의 입력 소스로 FileInputStream을 사용합니다.
- 동일한 파일이 zip으로 압축 된 다음 ZipFile.getInputStream 을 통해 열립니다 (거의) 항상 성공적으로 구문 분석됩니다.
- FileInputStream을 BufferedInputStream으로 래핑하려고 시도했지만 아무 것도 변경되지 않았습니다.
- 구문 분석에 실패하면 다음 번 파일 구문 분석 시도가 파일의 같은 위치에서 실패합니다.
- FileInputStream에 잘못 작동 :
나는 두 가지 원인이있을 수 있다고 생각합니다.
- XML 파서가 FileInputStream과 올바르게 작동하지 않습니다 (두 파서 모두 이 Android의 동일한 기반에 구현 된 것으로 들었습니다).
문제를 해결하거나 해결 방법을 제안하십시오.
감사합니다.
어떤 방식으로 실패합니까? 모든 오류 로그 (예 : 시간 초과)? –
XML 파싱 오류가 발생하는 행 : 파서 예외입니다. –
코드에서 메모리 사용량을 확인하십시오. 힙 크기가 16M에이를 수도 있습니다. 그러면 힙이 아닌 메모리가 반환됩니다. Runtime.getRuntime(). totalMemory(); Runtime.getRuntime(). maxMemory(); Runtime.getRuntime(). freeMemory(); – Pentium10