Adding a few null checks.
  1) During migration, if launcher2 has deleted user data,
migration oes not happen
  2) If Launcher3 does not has bind widget permission,
QSB would be null.

Bug: 18388507
Change-Id: Ief81f6f77ce154e7b3ecd4b77caf24239401e738
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index f5e3bc6..22db3ac 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -3960,11 +3960,11 @@
             SharedPreferences sp = getSharedPreferences(
                     LauncherAppState.getSharedPreferencesKey(), MODE_PRIVATE);
             int widgetId = sp.getInt(QSB_WIDGET_ID, -1);
+            AppWidgetProviderInfo widgetInfo = mAppWidgetManager.getAppWidgetInfo(widgetId);
             if (!searchProvider.provider.flattenToString().equals(
                     sp.getString(QSB_WIDGET_PROVIDER, null))
-                    || (widgetId == -1)
-                    || !mAppWidgetManager.getAppWidgetInfo(widgetId).provider
-                        .equals(searchProvider.provider)) {
+                    || (widgetInfo == null)
+                    || !widgetInfo.provider.equals(searchProvider.provider)) {
                 // A valid widget is not already bound.
                 if (widgetId > -1) {
                     mAppWidgetHost.deleteAppWidgetId(widgetId);