Android上的OutOfMemory异常

Android上的OutOfMemory异常,android,memory,memory-management,memory-leaks,out-of-memory,Android,Memory,Memory Management,Memory Leaks,Out Of Memory,我正在我的应用程序中使用一个外部jar库,它正在处理位图。这会导致我的应用程序出现内存不足异常。此类问题在以下问题中进行了描述: 一旦OOME发生,活动崩溃,应用程序仍在运行,内存将可用,但wifi连接将丢失 有没有办法在活动崩溃之前释放内存?我应该说,我可能无法访问库正在使用的位图。我还尝试在onPause和onDestroy中调用System.gc(),但这没有帮助 当活动崩溃时,为什么会没有内存 wi-fi连接发生了什么 多谢各位 upd 此库是尝试用您自己的类扩展应用程序类(需要声明A

我正在我的应用程序中使用一个外部jar库,它正在处理位图。这会导致我的应用程序出现内存不足异常。此类问题在以下问题中进行了描述:

一旦OOME发生,活动崩溃,应用程序仍在运行,内存将可用,但wifi连接将丢失

有没有办法在活动崩溃之前释放内存?我应该说,我可能无法访问库正在使用的位图。我还尝试在onPause和onDestroy中调用System.gc(),但这没有帮助

当活动崩溃时,为什么会没有内存

wi-fi连接发生了什么

多谢各位

upd


此库是

尝试用您自己的类扩展
应用程序
类(需要声明
AndroidManifest.xml
)。在那些
Application
类中,有一个方法
Application.onLowMemory()
——必须在内存不足时调用它。您可以重写此方法并尝试释放不必要的资源。它可能会很有用。

如果您记录.jar的使用情况,会有所帮助。可能您没有调用释放/回收位图的API。或者你正在以其本机分辨率解码大型图像,这太多了。这本书是osmdroid,我还没有看到任何释放/回收位图的api。但是我会再看一看,但是我如何才能释放库中不必要的资源(顺便说一句,它是osmdroid)?@Mur您需要调用
MapTileCache
实例的
clear
方法。我发现将
MapTileCache
实例作为一个单例,然后调用
onLowMemory
implementation
MapTileCache.getInstance().clear()的主体更容易@barmaley这是一个非常正确的建议,thanx。