0

http://pastebin.com/ntp3hi7j

上記のコードでは、'Limit = 5/10' のようないくつかのデータをダウンロードできますが、'Limit = 50' をダウンロードしようとすると、次のエラーが表示されます。

> 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)

おそらく問題の 1 つは、BLOB であり、非常に大きな文字列を返すため、フィールド「Image」が原因である可能性があります。

私に何ができる?ありがとう。

4

2 に答える 2

0

関数の BLOB (ビッグデータ) であるため、フィールド「Image」を含めないことで問題を解決しました。以前、「画像」フィールドを読み取るためだけに別の関数を作成しました。

于 2013-10-02T15:37:10.880 に答える
0

SOAP xml を取得して携帯電話のストレージに保存し、解析します。xml がメモリに保存されている場合は、解析しないでください。

これを参照できます:サーバーからXMLファイルをダウンロードしてSDカードに保存する方法は?

于 2013-10-02T11:11:52.547 に答える