diff --git a/android/src/META-INF/plugin.xml b/android/src/META-INF/plugin.xml
index 2efec6f..60df615 100755
--- a/android/src/META-INF/plugin.xml
+++ b/android/src/META-INF/plugin.xml
@@ -576,7 +576,7 @@
                       icon="AndroidIcons.AndroidToolWindow"
                       factoryClass="com.android.tools.idea.monitor.AndroidToolWindowFactory"/>
     <facet.toolWindow id="Build Variants"
-                      facetIdList="android"
+                      facetIdList="android,android-gradle"
                       anchor="left"
                       secondary="true"
                       icon="AndroidIcons.AndroidToolWindow"
diff --git a/android/src/com/android/tools/idea/databinding/BrUtil.java b/android/src/com/android/tools/idea/databinding/BrUtil.java
index 2dd27b0..1431480 100644
--- a/android/src/com/android/tools/idea/databinding/BrUtil.java
+++ b/android/src/com/android/tools/idea/databinding/BrUtil.java
@@ -56,7 +56,7 @@
     } else if (isBooleanGetter(psiMethod)) {
       propertyName = name.subSequence(2, name.length());
     } else {
-      LOG.error("@Bindable associated with method must follow JavaBeans convention %s", psiMethod.getName());
+      LOG.error("@Bindable associated with method must follow JavaBeans convention %s", new Throwable(), psiMethod.getName());
       return null;
     }
     char firstChar = propertyName.charAt(0);
diff --git a/android/src/com/android/tools/idea/gradle/actions/SyncProjectAction.java b/android/src/com/android/tools/idea/gradle/actions/SyncProjectAction.java
index ccae3c2..d2b2ad3 100644
--- a/android/src/com/android/tools/idea/gradle/actions/SyncProjectAction.java
+++ b/android/src/com/android/tools/idea/gradle/actions/SyncProjectAction.java
@@ -18,12 +18,14 @@
 import com.android.tools.idea.gradle.GradleSyncState;
 import com.android.tools.idea.gradle.project.GradleProjectImporter;
 import com.android.tools.idea.gradle.variant.view.BuildVariantView;
-import com.android.tools.idea.startup.AndroidStudioSpecificInitializer;
 import com.intellij.openapi.actionSystem.AnAction;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.actionSystem.Presentation;
 import com.intellij.openapi.project.Project;
 
+import static com.android.tools.idea.gradle.util.Projects.isBuildWithGradle;
+import static com.android.tools.idea.startup.AndroidStudioSpecificInitializer.isAndroidStudio;
+
 /**
  * Re-imports (syncs) an Android-Gradle project, without showing the "Import Project" wizard.
  */
@@ -35,7 +37,7 @@
   @Override
   public void actionPerformed(final AnActionEvent e) {
     Project project = e.getProject();
-    if (project != null) {
+    if (project != null && isBuildWithGradle(project)) {
       BuildVariantView.getInstance(project).projectImportStarted();
       Presentation presentation = e.getPresentation();
       presentation.setEnabled(false);
@@ -50,12 +52,16 @@
 
   @Override
   public void update(AnActionEvent e) {
-    if (!AndroidStudioSpecificInitializer.isAndroidStudio()) {
+    if (!isAndroidStudio()) {
+      e.getPresentation().setEnabledAndVisible(false);
+      return;
+    }
+    Project project = e.getProject();
+    if (project != null && !isBuildWithGradle(project)) {
       e.getPresentation().setEnabledAndVisible(false);
       return;
     }
     boolean enabled = false;
-    Project project = e.getProject();
     if (project != null) {
       enabled = !GradleSyncState.getInstance(project).isSyncInProgress();
     }
diff --git a/android/src/com/android/tools/idea/npw/TemplateParameterStep2.java b/android/src/com/android/tools/idea/npw/TemplateParameterStep2.java
index fdb7925..b8b189d 100644
--- a/android/src/com/android/tools/idea/npw/TemplateParameterStep2.java
+++ b/android/src/com/android/tools/idea/npw/TemplateParameterStep2.java
@@ -762,9 +762,9 @@
         }
       }
       catch (CircularParameterDependencyException exception) {
-        LOG.error("Circular dependency between parameters in template %1$s, participating parameters: %2$s", myCurrentTemplate.getTitle(),
+        LOG.error("Circular dependency between parameters in template %1$s, participating parameters: %2$s", exception,
+                  myCurrentTemplate.getTitle(),
                   Joiner.on(", ").join(exception.getParameterIds()));
-        LOG.error(exception);
       }
     }
     finally {
diff --git a/android/src/com/android/tools/swing/layoutlib/AndroidPreviewPanel.java b/android/src/com/android/tools/swing/layoutlib/AndroidPreviewPanel.java
index 7a12d14..005fa2e 100644
--- a/android/src/com/android/tools/swing/layoutlib/AndroidPreviewPanel.java
+++ b/android/src/com/android/tools/swing/layoutlib/AndroidPreviewPanel.java
@@ -116,6 +116,7 @@
   private double myScale = 1.0;
   private Dimension myLastRenderedSize;
   private Dimension myCachedPreferredSize;
+  private int myCurrentWidth;
 
   public AndroidPreviewPanel(@NotNull Configuration configuration) {
     myConfiguration = configuration;
@@ -134,9 +135,15 @@
     Dimension currentSize = getSize();
     synchronized (myGraphicsLayoutRendererLock) {
       if (myGraphicsLayoutRenderer != null && !currentSize.equals(previousSize)) {
-        // Because we use GraphicsLayoutRender in vertical scroll mode, the height passed it's only a minimum. If the actual rendering results
-        // in a bigger size, the GraphicsLayoutRenderer.getPreferredSize() call will return the correct size.
-        myGraphicsLayoutRenderer.setSize(width, 1);
+        // Because we use GraphicsLayoutRender in vertical scroll mode, the height passed it's only a minimum.
+        // If the actual rendering results in a bigger size, the GraphicsLayoutRenderer.getPreferredSize()
+        // call will return the correct size.
+
+        // Older versions of layoutlib do not handle correctly when 1 is passed and don't always recalculate
+        // the height if the width hasn't decreased.
+        // We workaround that by keep track of the last known width and passing height 1 when it decreases.
+        myGraphicsLayoutRenderer.setSize(width, (myCurrentWidth < width) ? 1 : height);
+        myCurrentWidth = width;
       }
     }
   }
diff --git a/android/src/org/jetbrains/android/facet/IdeaSourceProvider.java b/android/src/org/jetbrains/android/facet/IdeaSourceProvider.java
index 878e3af..226c834 100644
--- a/android/src/org/jetbrains/android/facet/IdeaSourceProvider.java
+++ b/android/src/org/jetbrains/android/facet/IdeaSourceProvider.java
@@ -43,7 +43,7 @@
  * Like {@link SourceProvider}, but for IntelliJ, which means it provides
  * {@link VirtualFile} references rather than {@link File} references.
  *
- * @see org.jetbrains.android.facet.AndroidSourceType
+ * @see AndroidSourceType
  */
 public abstract class IdeaSourceProvider {
   private IdeaSourceProvider() {
@@ -347,9 +347,10 @@
       return Collections.singletonList(facet.getMainIdeaSourceProvider());
     }
     AndroidModel androidModel = facet.getAndroidModel();
-    assert androidModel != null;
-
-    return createAll(androidModel.getActiveSourceProviders());
+    if (androidModel != null) {
+      return createAll(androidModel.getActiveSourceProviders());
+    }
+    return Collections.emptyList();
   }
 
   @NotNull
@@ -358,8 +359,10 @@
       return Collections.emptyList();
     }
     AndroidModel androidModel = facet.getAndroidModel();
-    assert androidModel != null;
-    return createAll(androidModel.getTestSourceProviders());
+    if (androidModel != null) {
+      return createAll(androidModel.getTestSourceProviders());
+    }
+    return Collections.emptyList();
   }
 
   private Collection<VirtualFile> getAllSourceFolders() {
diff --git a/android/src/org/jetbrains/android/uipreview/ChooseResourceDialog.java b/android/src/org/jetbrains/android/uipreview/ChooseResourceDialog.java
index 7999b30..62a3ee7 100644
--- a/android/src/org/jetbrains/android/uipreview/ChooseResourceDialog.java
+++ b/android/src/org/jetbrains/android/uipreview/ChooseResourceDialog.java
@@ -285,6 +285,7 @@
       myStateListPickerPanel = new ResourceDialogTabComponent(new JPanel(new BorderLayout()), resType, resFolderType);
       myStateListPickerPanel.setBorder(null);
       myStateListPickerPanel.addCenter(myStateListPicker);
+      myStateListPickerPanel.setChangeFileNameVisible(false);
 
       myContentPanel.addTab("StateList", myStateListPickerPanel);
       numberOfTabs++;
@@ -1210,5 +1211,9 @@
     public void openLocationSettings() {
       mySouthPanel.setOn(true);
     }
+
+    public void setChangeFileNameVisible(boolean isVisible) {
+      myLocationSettings.setChangeFileNameVisible(isVisible);
+    }
   }
 }
