AbstractStringBuilder enlargeBuffer和OutOfMemoryError

时间:2014-09-27 08:35:16

标签: android performance

不确定导致此错误的原因。也不确定是否已知错误/错误,任何解释或帮助。装置:三星N-900

   java.lang.RuntimeException: An error occured while executing doInBackground()
   at android.os.AsyncTask$3.done(AsyncTask.java:299)
   at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
   at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
   at java.util.concurrent.FutureTask.run(FutureTask.java:239)
   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
   at java.lang.Thread.run(Thread.java:841)
   Caused by: java.lang.OutOfMemoryError
   at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:94)
   at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:145)
   at java.lang.StringBuilder.append(StringBuilder.java:202)
   at org.json.JSONStringer.value(JSONStringer.java:246)
   at org.json.JSONObject.writeTo(JSONObject.java:671)
   at org.json.JSONStringer.value(JSONStringer.java:237)
   at org.json.JSONArray.writeTo(JSONArray.java:572)
   at org.json.JSONStringer.value(JSONStringer.java:233)
   at org.json.JSONObject.writeTo(JSONObject.java:671)
   at org.json.JSONObject.toString(JSONObject.java:640)
   at com.shizup.app.MainActivity$UserProfileAsync.doInBackground(MainActivity.java:683)
   at com.shizup.app.MainActivity$UserProfileAsync.doInBackground(MainActivity.java:1)
   at android.os.AsyncTask$2.call(AsyncTask.java:287)
   at java.util.concurrent.FutureTask.run(FutureTask.java:234)
   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
   at java.lang.Thread.run(Thread.java:841)

1 个答案:

答案 0 :(得分:1)

看起来你在异步任务中写了太多的字符串构建器。可能是在一个循环中无意中。到目前为止,它会溢出内存并崩溃。

检查实际满足的任何While循环条件,因此它们会停止。