diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java index 7b7b0aad08..354b8ec41e 100644 --- a/src/com/android/launcher3/WidgetPreviewLoader.java +++ b/src/com/android/launcher3/WidgetPreviewLoader.java @@ -301,7 +301,14 @@ public class WidgetPreviewLoader { Drawable drawable = null; if (info.previewImage != 0) { - drawable = mWidgetManager.loadPreview(info); + try { + drawable = mWidgetManager.loadPreview(info); + } catch (OutOfMemoryError e) { + Log.w(TAG, "Error loading widget preview for: " + info.provider, e); + // During OutOfMemoryError, the previous heap stack is not affected. Catching + // an OOM error here should be safe & not affect other parts of launcher. + drawable = null; + } if (drawable != null) { drawable = mutateOnMainThread(drawable); } else {