我在 android 市场上有一个应用程序,异常和错误被 acra 捕获并发送给我。
但是我收到了很多内存不足的错误.. 在不同类型的类中......一些是我的应用程序,一些是通用的 java..
这是否总是意味着我的应用程序存在问题,或者也可能是由于其他进程导致手机内存不足?
用户还会得到一个 fc 对话框吗?
附加信息
我的应用程序中没有任何内存密集......
没有图像...没有大块数据.. 只有一个简单的 View ..和最密集的 mobclix 广告..
我是 Java 的新手...所以我可能在某处有泄漏...但我确实发现很难调试它。 但在这一点上,我什至不确定有什么问题......
我每天收到大约 25 -50 个 OOM 错误..但与它每天显示的 60.000 个广告相比。 (我每次启动时只显示 1 或 2 个广告)并不过分。
1 收到如下错误:
"java.lang.OutOfMemoryError
at org.apache.http.impl.io.AbstractSessionInputBuffer.init(AbstractSessionInputBuffer.java:79)
at org.apache.http.impl.io.SocketInputBuffer.<init>(SocketInputBuffer.java:93)
at android.net.http.AndroidHttpClientConnection.bind(AndroidHttpClientConnection.java:114)
at android.net.http.HttpConnection.openConnection(HttpConnection.java:61)
at android.net.http.Connection.openHttpConnection(Connection.java:378)
at android.net.http.Connection.processRequests(Connection.java:237)
at android.net.http.ConnectionThread.run(ConnectionThread.java:125)
”
"java.lang.OutOfMemoryError
at java.io.BufferedReader.<init>(BufferedReader.java:102)
at com.mobclix.android.sdk.Mobclix$FetchResponseThread.run(Mobclix.java:1422)
at com.mobclix.android.sdk.MobclixAdView$FetchAdResponseThread.run(MobclixAdView.java:390)
at java.util.Timer$TimerImpl.run(Timer.java:290)
”
"java.lang.OutOfMemoryError
at org.apache.http.util.ByteArrayBuffer.<init>(ByteArrayBuffer.java:53)
at org.apache.http.impl.io.AbstractSessionOutputBuffer.init(AbstractSessionOutputBuffer.java:77)
at org.apache.http.impl.io.SocketOutputBuffer.<init>(SocketOutputBuffer.java:76)
at android.net.http.AndroidHttpClientConnection.bind(AndroidHttpClientConnection.java:115)
at android.net.http.HttpConnection.openConnection(HttpConnection.java:61)
at android.net.http.Connection.openHttpConnection(Connection.java:378)
at android.net.http.Connection.processRequests(Connection.java:237)
at android.net.http.ConnectionThread.run(ConnectionThread.java:125)
”
所以主要问题是..我是不是在某处漏水了.. 还是这可以被认为是正常的,因为在一小部分情况下,手机可能由于运行其他应用程序而内存不足。
最佳答案
一个常见的 JVM 问题是垃圾收集器只能删除未引用的对象。如果您有大型持久对象,那么将这些对象中未使用的变量设置为 null 以便取消引用它们很重要。一个典型的问题是在不需要时保留像 HashMap 对象这样的东西,其中包含很多值,因为 HashMap 中的每个条目都在消耗内存。
关于java - 内存不足错误,我的应用程序的错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055614/