0

http://pastebin.com/ntp3hi7j

With the code above I can download few data, like 'Limit = 5/10', but when I'm trying to download the 'Limit = 50', it gives me the following error:

> 10-02 06:44:28.075: E/AndroidRuntime(27598): FATAL EXCEPTION:
> pool-1-thread-1 10-02 06:44:28.075: E/AndroidRuntime(27598):
> java.lang.OutOfMemoryError 10-02 06:44:28.075:
> E/AndroidRuntime(27598):  at
> java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:94)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:124)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> java.lang.StringBuilder.append(StringBuilder.java:271) 10-02
> 06:44:28.075: E/AndroidRuntime(27598):    at
> org.kxml2.io.KXmlParser.readValue(KXmlParser.java:1338) 10-02
> 06:44:28.075: E/AndroidRuntime(27598):    at
> org.kxml2.io.KXmlParser.next(KXmlParser.java:390) 10-02 06:44:28.075:
> E/AndroidRuntime(27598):  at
> org.kxml2.io.KXmlParser.next(KXmlParser.java:310) 10-02 06:44:28.075:
> E/AndroidRuntime(27598):  at
> org.kxml2.io.KXmlParser.nextText(KXmlParser.java:2056) 10-02
> 06:44:28.075: E/AndroidRuntime(27598):    at
> org.ksoap2.serialization.DM.readInstance(DM.java:35) 10-02
> 06:44:28.075: E/AndroidRuntime(27598):    at
> org.ksoap2.serialization.SoapSerializationEnvelope.readInstance(SoapSerializationEnvelope.java:428)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> org.ksoap2.serialization.SoapSerializationEnvelope.read(SoapSerializationEnvelope.java:387)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> org.ksoap2.serialization.SoapSerializationEnvelope.readUnknown(SoapSerializationEnvelope.java:273)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> org.ksoap2.serialization.SoapSerializationEnvelope.read(SoapSerializationEnvelope.java:389)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:151)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:140) 10-02
> 06:44:28.075: E/AndroidRuntime(27598):    at
> org.ksoap2.transport.Transport.parseResponse(Transport.java:118) 10-02
> 06:44:28.075: E/AndroidRuntime(27598):    at
> org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:253)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:116)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:111)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> com.example.inforlider.SyncActivity$4.run(SyncActivity.java:189) 10-02
> 06:44:28.075: E/AndroidRuntime(27598):    at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
> 10-02 06:44:28.075: E/AndroidRuntime(27598):  at
> java.lang.Thread.run(Thread.java:841)

Probably one of the problems could be because of the field "Image" since it's a BLOB and returns a very large String?

What can I do? Thanks.

user2742861
  • 340
  • 1
  • 8
  • 17

2 Answers2

0

Get and save your soap xml to phone storage, then parse it. You shouldn't parse it when xml stored on memory.

you can refer this: How to download XML file from server and save it in SD card?

Community
  • 1
  • 1
Melih Mucuk
  • 6,988
  • 6
  • 37
  • 56
0

I solved the issue by not include the field "Image", since it's a BLOB (big data) in the function. Before, I created another function only to read the field "Image".

user2742861
  • 340
  • 1
  • 8
  • 17