android - android应用程序中的内存问题

标签 android

我从网络服务中获得了很大或很大的值(value)。我正在使用 sax 解析器来解析值并将其添加到数组列表中。从 arraylist 我正在使用 scrollview 添加到 tablelayout 我在 android 中遇到内存不足错误。谁能告诉我我需要做什么来解决这个问题?有什么方法可以增加堆大小或空闲堆内存吗?谁能告诉我哪个解析器最适合解析大型 xml 文件?

我有近 7000 到 10000 条记录喜欢文章详情标题

任何帮助将不胜感激

我的堆栈跟踪:

II/dalvikvm-heap(  992): Clamp target GC heap from 16.810MB to 16.000MB
D/dalvikvm(  992): GC freed 4148 objects / 272832 bytes in 386ms
I/dalvikvm-heap(  992): Forcing collection of SoftReferences for 8704-byte alloc
ation
I/dalvikvm-heap(  992): Clamp target GC heap from 16.810MB to 16.000MB
D/dalvikvm(  992): GC freed 0 objects / 0 bytes in 353ms
E/dalvikvm-heap(  992): Out of memory on a 8704-byte allocation.
I/dalvikvm(  992): "main" prio=5 tid=3 RUNNABLE
I/dalvikvm(  992):   | group="main" sCount=0 dsCount=0 s=N obj=0x4001b268 self=0
xbd00
I/dalvikvm(  992):   | sysTid=992 nice=0 sched=0/0 cgrp=default handle=-13440013
84
I/dalvikvm(  992):   at android.view.ViewGroup.addInArray(ViewGroup.java:~1918)
I/dalvikvm(  992):   at android.view.ViewGroup.addViewInner(ViewGroup.java:1879)

I/dalvikvm(  992):   at android.view.ViewGroup.addView(ViewGroup.java:1756)
I/dalvikvm(  992):   at android.widget.TableLayout.addView(TableLayout.java:418)

I/dalvikvm(  992):   at android.view.ViewGroup.addView(ViewGroup.java:1713)
I/dalvikvm(  992):   at android.widget.TableLayout.addView(TableLayout.java:400)

I/dalvikvm(  992):   at android.view.ViewGroup.addView(ViewGroup.java:1693)
I/dalvikvm(  992):   at android.widget.TableLayout.addView(TableLayout.java:391)

I/dalvikvm(  992):   at com.inquest.HomeSearchArticle$HomeSearchTask.onPostExecu
te(HomeSearchArticle.java:199)
I/dalvikvm(  992):   at com.inquest.HomeSearchArticle$HomeSearchTask.onPostExecu
te(HomeSearchArticle.java:1)
I/dalvikvm(  992):   at android.os.AsyncTask.finish(AsyncTask.java:417)
I/dalvikvm(  992):   at android.os.AsyncTask.access$300(AsyncTask.java:127)
I/dalvikvm(  992):   at android.os.AsyncTask$InternalHandler.handleMessage(Async
Task.java:429)
I/dalvikvm(  992):   at android.os.Handler.dispatchMessage(Handler.java:99)
I/dalvikvm(  992):   at android.os.Looper.loop(Looper.java:123)
I/dalvikvm(  992):   at android.app.ActivityThread.main(ActivityThread.java:4363
)
I/dalvikvm(  992):   at java.lang.reflect.Method.invokeNative(Native Method)
I/dalvikvm(  992):   at java.lang.reflect.Method.invoke(Method.java:521)
I/dalvikvm(  992):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.r
un(ZygoteInit.java:860)
I/dalvikvm(  992):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:
618)
I/dalvikvm(  992):   at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(  992):
I/System.out(  992): ######out of memory error is###java.lang.OutOfMemoryError
I/dalvikvm-heap(  992): Clamp target GC heap from 17.270MB to 16.000MB
D/dalvikvm(  992): GC freed 8418 objects / 744936 bytes in 468ms
I/dalvikvm-heap(  992): Clamp target GC heap from 17.471MB to 16.000MB
D/dalvikvm(  992): GC freed 8605 objects / 481136 bytes in 428ms
I/dalvikvm-heap(  992): Clamp target GC heap from 17.583MB to 16.000MB
D/dalvikvm(  992): GC freed 5050 objects / 297248 bytes in 413ms
I/dalvikvm-heap(  992): Clamp target GC heap from 17.595MB to 16.000MB
D/dalvikvm(  992): GC freed 1927 objects / 77160 bytes in 515ms
I/dalvikvm-heap(  992): Forcing collection of SoftReferences for 1028-byte alloc
ation
I/dalvikvm-heap(  992): Clamp target GC heap from 17.594MB to 16.000MB
D/dalvikvm(  992): GC freed 79 objects / 1264 bytes in 495ms
E/dalvikvm-heap(  992): Out of memory on a 1028-byte allocation.
I/dalvikvm(  992): "main" prio=5 tid=3 RUNNABLE
I/dalvikvm(  992):   | group="main" sCount=0 dsCount=0 s=N obj=0x4001b268 self=0
xbd00
I/dalvikvm(  992):   | sysTid=992 nice=0 sched=0/0 cgrp=default handle=-13440013
84
I/dalvikvm(  992):   at android.text.StaticLayout.generate(StaticLayout.java:~13
8)
I/dalvikvm(  992):   at android.text.StaticLayout.<init>(StaticLayout.java:97)
I/dalvikvm(  992):   at android.text.StaticLayout.<init>(StaticLayout.java:54)
I/dalvikvm(  992):   at android.text.StaticLayout.<init>(StaticLayout.java:45)
I/dalvikvm(  992):   at android.widget.TextView.makeNewLayout(TextView.java:4914
)
I/dalvikvm(  992):   at android.widget.TextView.onMeasure(TextView.java:5176)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.widget.TableRow.getColumnsWidths(TableRow.java:3
08)
I/dalvikvm(  992):   at android.widget.TableLayout.findLargestCells(TableLayout.
java:497)
I/dalvikvm(  992):   at android.widget.TableLayout.measureVertical(TableLayout.j
ava:462)
I/dalvikvm(  992):   at android.widget.TableLayout.onMeasure(TableLayout.java:42
8)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.widget.ScrollView.measureChildWithMargins(Scroll
View.java:893)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.widget.ScrollView.onMeasure(ScrollView.java:276)

I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.widget.RelativeLayout.measureChildHorizontal(Rel
ativeLayout.java:569)
I/dalvikvm(  992):   at android.widget.RelativeLayout.onMeasure(RelativeLayout.j
ava:361)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.widget.RelativeLayout.measureChildHorizontal(Rel
ativeLayout.java:569)
I/dalvikvm(  992):   at android.widget.RelativeLayout.onMeasure(RelativeLayout.j
ava:361)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.LinearLayout.measureChildBeforeLayout(Lin
earLayout.java:888)
I/dalvikvm(  992):   at android.widget.LinearLayout.measureHorizontal(LinearLayo
ut.java:619)
I/dalvikvm(  992):   at android.widget.LinearLayout.onMeasure(LinearLayout.java:
280)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup
.java:3023)
I/dalvikvm(  992):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:24
5)
I/dalvikvm(  992):   at android.view.View.measure(View.java:7964)
I/dalvikvm(  992):   at android.view.ViewRoot.performTraversals(ViewRoot.java:76
3)
I/dalvikvm(  992):   at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
I/dalvikvm(  992):   at android.os.Handler.dispatchMessage(Handler.java:99)
I/dalvikvm(  992):   at android.os.Looper.loop(Looper.java:123)
I/dalvikvm(  992):   at android.app.ActivityThread.main(ActivityThread.java:4363
)
I/dalvikvm(  992):   at java.lang.reflect.Method.invokeNative(Native Method)
I/dalvikvm(  992):   at java.lang.reflect.Method.invoke(Method.java:521)
I/dalvikvm(  992):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.r
un(ZygoteInit.java:860)
I/dalvikvm(  992):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:
618)
I/dalvikvm(  992):   at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(  992):
D/AndroidRuntime(  992): Shutting down VM
W/dalvikvm(  992): threadid=3: thread exiting with uncaught exception (group=0x4
001b188)
E/AndroidRuntime(  992): Uncaught handler: thread main exiting due to uncaught e
xception
I/dalvikvm-heap(  992): Clamp target GC heap from 17.609MB to 16.000MB
D/dalvikvm(  992): GC freed 289 objects / 10728 bytes in 407ms
I/dalvikvm-heap(  992): Forcing collection of SoftReferences for 938-byte alloca
tion
I/dalvikvm-heap(  992): Clamp target GC heap from 17.609MB to 16.000MB
D/dalvikvm(  992): GC freed 0 objects / 0 bytes in 402ms
E/dalvikvm-heap(  992): Out of memory on a 938-byte allocation.
I/dalvikvm(  992): "main" prio=5 tid=3 RUNNABLE
I/dalvikvm(  992):   | group="main" sCount=0 dsCount=0 s=N obj=0x4001b268 self=0
xbd00
I/dalvikvm(  992):   | sysTid=992 nice=0 sched=0/0 cgrp=default handle=-13440013
84
I/dalvikvm(  992):   at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractSt
ringBuilder.java:~97)
I/dalvikvm(  992):   at java.lang.AbstractStringBuilder.append0(AbstractStringBu
ilder.java:131)
I/dalvikvm(  992):   at java.lang.StringBuffer.append(StringBuffer.java:273)
I/dalvikvm(  992):   at java.io.StringWriter.write(StringWriter.java:138)
I/dalvikvm(  992):   at java.io.PrintWriter.doWrite(PrintWriter.java:711)
I/dalvikvm(  992):   at java.io.PrintWriter.write(PrintWriter.java:686)
I/dalvikvm(  992):   at java.io.PrintWriter.write(PrintWriter.java:661)
I/dalvikvm(  992):   at java.io.PrintWriter.write(PrintWriter.java:729)
I/dalvikvm(  992):   at java.io.PrintWriter.print(PrintWriter.java:492)
I/dalvikvm(  992):   at java.io.PrintWriter.println(PrintWriter.java:623)
I/dalvikvm(  992):   at java.lang.Throwable.printStackTrace(Throwable.java:316)
I/dalvikvm(  992):   at android.util.Log.getStackTraceString(Log.java:234)
I/dalvikvm(  992):   at com.android.internal.os.RuntimeInit.crash(RuntimeInit.ja
va:315)
I/dalvikvm(  992):   at com.android.internal.os.RuntimeInit$UncaughtHandler.unca
ughtException(RuntimeInit.java:76)
I/dalvikvm(  992):   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java
:887)
I/dalvikvm(  992):   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java
:884)
I/dalvikvm(  992):   at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(  992):
I/dalvikvm-heap(  992): Clamp target GC heap from 17.614MB to 16.000MB
D/dalvikvm(  992): GC freed 64 objects / 5424 bytes in 447ms
I/dalvikvm-heap(  992): Forcing collection of SoftReferences for 754-byte alloca
tion
I/dalvikvm-heap(  992): Clamp target GC heap from 17.614MB to 16.000MB
D/dalvikvm(  992): GC freed 0 objects / 0 bytes in 440ms
E/dalvikvm-heap(  992): Out of memory on a 754-byte allocation.
I/dalvikvm(  992): "main" prio=5 tid=3 RUNNABLE
I/dalvikvm(  992):   | group="main" sCount=0 dsCount=0 s=N obj=0x4001b268 self=0
xbd00
I/dalvikvm(  992):   | sysTid=992 nice=0 sched=0/0 cgrp=default handle=-13440013
84
I/dalvikvm(  992):   at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractSt
ringBuilder.java:~97)
I/dalvikvm(  992):   at java.lang.AbstractStringBuilder.append0(AbstractStringBu
ilder.java:131)
I/dalvikvm(  992):   at java.lang.StringBuffer.append(StringBuffer.java:273)
I/dalvikvm(  992):   at java.io.StringWriter.write(StringWriter.java:138)
I/dalvikvm(  992):   at java.io.PrintWriter.doWrite(PrintWriter.java:711)
I/dalvikvm(  992):   at java.io.PrintWriter.write(PrintWriter.java:686)
I/dalvikvm(  992):   at java.io.PrintWriter.write(PrintWriter.java:661)
I/dalvikvm(  992):   at java.io.PrintWriter.write(PrintWriter.java:729)
I/dalvikvm(  992):   at java.io.PrintWriter.print(PrintWriter.java:492)
I/dalvikvm(  992):   at java.io.PrintWriter.println(PrintWriter.java:623)
I/dalvikvm(  992):   at java.lang.Throwable.printStackTrace(Throwable.java:316)
I/dalvikvm(  992):   at android.util.Log.getStackTraceString(Log.java:234)
I/dalvikvm(  992):   at com.android.internal.os.RuntimeInit.crash(RuntimeInit.ja
va:323)
I/dalvikvm(  992):   at com.android.internal.os.RuntimeInit$UncaughtHandler.unca
ughtException(RuntimeInit.java:76)
I/dalvikvm(  992):   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java
:887)
I/dalvikvm(  992):   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java
:884)
I/dalvikvm(  992):   at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(  992):
I/Process (   60): Sending signal. PID: 992 SIG: 3
I/dalvikvm(  992): threadid=7: reacting to signal 3
I/dalvikvm(  992): Wrote stack trace to '/data/anr/traces.txt'
D/dalvikvm(   60): GC freed 13970 objects / 689880 bytes in 201ms

谢谢

最佳答案

我面临着类似的问题,尽管是针对不同的应用程序。请看我的帖子: Problem with downloading multiple files using AsyncTask

关于android - android应用程序中的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5089658/

相关文章:

android - 无法设置设备政策 Android 手机

android - Android 上使用 MuPDF 的 pdf 注释

java - 使用 while 循环报告进度和完成情况是否正确?

android - 无法在 root 的 Nexus 9 上禁用 com.android.systemui

android - 如何使用facebook sdk 4.7在android中实现facebook登录

android - 使用标准 Android 应用程序拍照并存储在数据库中

android - EncryptedSharedPreferences 导致 UnrecoverableKeyException

android - 带有所有特殊符号的正则表达式

java - 重写自定义 ArrayAdapter 删除迭代器

android - 如何将 mapview 渲染为一个圆圈?