我的应用程序泄漏了我在drawable文件夹

时间:2017-03-21 20:57:23

标签: android memory-leaks

我有一个奇怪的内存泄漏问题,我的应用程序不断泄漏Bitmap个对象和其他相关对象,如VectorDrawablesAnimationDrawables

我通过Eclipse Memory Analyzer并且Gimp能够恢复泄露的Bitmap物品,并发现它们是随机形状的星星,正方形或圆形。我的res/drawable文件夹中没有这些形状。

他们来自哪里,为什么他们泄漏这么多? 这个泄漏发生在我的Samsung Galaxy S7 - Android 7.0和模拟器上Android 7.0和6.0。但是当我在运行Android 4.4.4

的Huawai上运行我的应用程序时,没有泄漏

这是我的hprof的链接。文件,如果有人会仔细看看:https://www.dropbox.com/s/e1ry3ny5eb66xk8/out3%20-%20Kopi.hprof?dl=0

内存分析器中Dominator Tree的屏幕截图

它们的黄色标记是例如此图片下面的星星

enter image description here

我的漏洞中发现的星星位图

enter image description here

此外,我的堆栈跟踪一直无休止地吐出这些行

 03-21 17:00:08.415 16747-16747/muddzdev.shoppist I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
    03-21 17:00:08.428 16747-16760/muddzdev.shoppist D/InputTransport: Input channel constructed: fd=98
    03-21 17:00:13.315 16747-16886/muddzdev.shoppist E/OpenGLRenderer:   saveGfxinfoFileDisabled enabled
    03-21 17:00:13.632 16747-16886/muddzdev.shoppist E/OpenGLRenderer:   saveGfxinfoFileDisabled enabled
    03-21 17:00:13.914 16747-16886/muddzdev.shoppist E/OpenGLRenderer:   saveGfxinfoFileDisabled enabled
    03-21 17:00:14.257 16747-16886/muddzdev.shoppist E/OpenGLRenderer:   saveGfxinfoFileDisabled enabled
    03-21 17:00:14.592 16747-16886/muddzdev.shoppist E/OpenGLRenderer:   saveGfxinfoFileDisabled enabled
    03-21 17:00:14.933 16747-16886/muddzdev.shoppist E/OpenGLRenderer:   saveGfxinfoFileDisabled enabled
    03-21 17:00:15.299 16747-16886/muddzdev.shoppist E/OpenGLRenderer:   saveGfxinfoFileDisabled enabled

2 个答案:

答案 0 :(得分:14)

在更新到API 24后,我遇到了与S7相同的问题,我可以通过在Android Studio中禁用GPU监视器来删除此错误。看起来它肯定是一个Android工作室问题,也许只有S7。

答案 1 :(得分:3)

所以这个问题很难调试,我花了整整几个星期的工作。这种泄漏来自无处,CanaryLeak甚至无法检测到它。

我卸载了Android Studio,删除了User文件夹中AppData下的电脑中的所有重播文件夹,以及C:/UserProgram files下与Android或Android Studio相关的所有内容甚至是SDK文件夹。

使用CCleaner对注册表进行了全面清理,然后再次下载了Android Studio,从Git克隆了我的项目,然后又重新运行了我的应用程序,就在这里!没有泄漏。

我非常确定这个疯狂的泄漏与您自己的应用程序无关,但与Android Studio或其他东西无关