内存泄漏,认为它是图像,Android

时间:2018-04-11 19:34:45

标签: android memory-leaks android-imageview android-drawable android-bitmap

我的应用上有内存泄漏。我认为这是图像,然而,我运行的应用程序没有XML,只有主要活动,现在是空的。问题是它仍然崩溃。

我想也许这些图片无论如何都会被加载到应用程序中,即使它们不是任何XML,这就是我得到内存溢出的原因。

这有意义吗?

任何建议都会有所帮助!

谢谢!

Process: com.android.launcher3, PID: 2176
java.lang.OutOfMemoryError: Failed to allocate a 125440012 byte allocation with 8214474 free bytes and 84MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1155)
at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:720)
at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571)
at android.content.res.Resources.getDrawableForDensity(Resources.java:849)
at android.content.res.Resources.getDrawableForDensity(Resources.java:806)
at android.content.pm.LauncherActivityInfo.getIcon(LauncherActivityInfo.java:111)
at com.android.launcher3.compat.LauncherActivityInfoCompatVL.getIcon(LauncherActivityInfoCompatVL.java:48)
at com.android.launcher3.IconProvider.getIcon(IconProvider.java:47)
at com.android.launcher3.IconCache.updateCacheAndGetContentValues(IconCache.java:391)
at com.android.launcher3.IconCache.addIconToDBAndMemCache(IconCache.java:360)
at com.android.launcher3.IconCache.updateIconsForPkg(IconCache.java:226)
at com.android.launcher3.LauncherModel$PackageUpdatedTask.run(LauncherModel.java:3049)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)

1 个答案:

答案 0 :(得分:0)

解决了这个问题。我在应用程序中使用原始drawables作为更大的尺寸以及drawable-xxx。我的预感是它加载了原始的而不是xxx的,所以它对于手机来说太大了。