java - 内存不足错误,我的应用程序的错?

标签 java android out-of-memory

我在 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/

相关文章:

c# - 引入多线程后串口通信出现蓝屏错误

java - 性能静态初始化

c# - 为什么 MtpDevice.ImportFile 总是失败?

android - 更新到 Gradle 5.6.4 和 Android Studio 3.6.1 后 nativeLibraryDir 显示为空

c# - 如何解决 C# 中数据集内存不足异常错误?

java - 针对事件/异常生成 Java 线程转储

java - libgdx 3d 渲染,我的 fps 越来越低

具有多种值类型的 Java 枚举

java - 按钮 lWUIT j2me setlocation

android - ADB 找不到我的 Archos 设备