2010-11-19 4 views
0

내 애플리케이션에서 대용량 XML 파일 (~ 1-2M)을 구문 분석하고 있습니다. 때때로 일부 파일을 구문 분석 할 때 구문 분석기가 에 실패합니다.XML 파서가 안드로이드에서 대용량 XML 파일 구문 분석에 실패하는 경우가 있음

증상 :

  1. 때때로 같은 파일 때로는 성공적으로 구문 분석 - 없습니다.
  2. 파일 구문 분석에 실패하면 파일을 다시 구문 분석 할 수 있으려면 약간의 시간이 걸립니다.
  3. SAX (XMLReader)와 Pull (XMLPullParser)의 두 가지 유형의 XML 파서 인 두 개를 모두 파일의 동일한 위치에서 사용할 수 없습니다.
  4. 필자는 파서의 입력 소스로 FileInputStream을 사용합니다.
  5. 동일한 파일이 zip으로 압축 된 다음 ZipFile.getInputStream 을 통해 열립니다 (거의) 항상 성공적으로 구문 분석됩니다.
  6. FileInputStream을 BufferedInputStream으로 래핑하려고 시도했지만 아무 것도 변경되지 않았습니다.
  7. 구문 분석에 실패하면 다음 번 파일 구문 분석 시도가 파일의 같은 위치에서 실패합니다.

    1. FileInputStream에 잘못 작동 :

    나는 두 가지 원인이있을 수 있다고 생각합니다.

  8. XML 파서가 FileInputStream과 올바르게 작동하지 않습니다 (두 파서 모두 이 Android의 동일한 기반에 구현 된 것으로 들었습니다).

문제를 해결하거나 해결 방법을 제안하십시오.

감사합니다.

+0

어떤 방식으로 실패합니까? 모든 오류 로그 (예 : 시간 초과)? –

+0

XML 파싱 오류가 발생하는 행 : 파서 ​​예외입니다. –

+0

코드에서 메모리 사용량을 확인하십시오. 힙 크기가 16M에이를 수도 있습니다. 그러면 힙이 아닌 메모리가 반환됩니다. Runtime.getRuntime(). totalMemory(); Runtime.getRuntime(). maxMemory(); Runtime.getRuntime(). freeMemory(); – Pentium10

답변

1

가끔 문제가 발생하는 경우입니다. 응용 프로그램을 실행할 때마다 문제가 발생하면 문제가 XML과 관련 될 수 있습니다.

내 응용 프로그램의 사용자 중 누구도 동일한 문제를보고하지 않기 때문에 내 경우에는 장치 (삼성 I5700) 또는 sdcard 문제라고 생각합니다.

나는 안드로이드로 sdcard를 다시 포맷하거나 다른 것을 구입하려고합니다.

관련 문제