diff --git a/.gitignore b/.gitignore
index fffd91617bae32ae966672738426469f367d2de1..dd93b08b2b7407426853366af64616d0575347a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,5 +5,6 @@
 /.idea/workspace.xml
 /.idea/runConfigurations
 /out
+build/
 stub-annotations/out
 .DS_Store
diff --git a/build.gradle b/build.gradle
index 0554658dcf18958a84cd5c61bc27609751790544..4456034a1bea96b1d9de0dc966b0944b45e93b69 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,6 @@
 buildscript {
-    ext.gradle_version = '3.2.0-alpha15'
-    ext.studio_version = '26.2.0-alpha15'
+    ext.gradle_version = '3.2.0-alpha16'
+    ext.studio_version = '26.2.0-alpha16'
     ext.kotlin_version = '1.2.41'
     repositories {
         google()
diff --git a/src/main/java/com/android/tools/metalava/Driver.kt b/src/main/java/com/android/tools/metalava/Driver.kt
index 820d69445ab2facf95a2559d4eec83effe484401..0597abec87dd34392ad70049ca5537a127ed42a8 100644
--- a/src/main/java/com/android/tools/metalava/Driver.kt
+++ b/src/main/java/com/android/tools/metalava/Driver.kt
@@ -470,7 +470,7 @@ private fun loadFromSources(): Codebase {
     val project = projectEnvironment.project
 
     val kotlinFiles = sources.filter { it.path.endsWith(SdkConstants.DOT_KT) }
-    KotlinLintAnalyzerFacade.analyze(kotlinFiles, joined, project)
+    KotlinLintAnalyzerFacade().analyze(kotlinFiles, joined, project)
 
     val units = Extractor.createUnitsForFiles(project, sources)
     val packageDocs = gatherHiddenPackagesFromJavaDocs(options.sourcePath)
@@ -541,7 +541,7 @@ private fun loadFromJarFile(apiJar: File, manifest: File? = null): Codebase {
     projectEnvironment.registerPaths(listOf(apiJar))
 
     val kotlinFiles = emptyList<File>()
-    KotlinLintAnalyzerFacade.analyze(kotlinFiles, listOf(apiJar), project)
+    KotlinLintAnalyzerFacade().analyze(kotlinFiles, listOf(apiJar), project)
 
     val codebase = PsiBasedCodebase()
     codebase.description = "Codebase loaded from $apiJar"
diff --git a/src/main/java/com/android/tools/metalava/apilevels/AndroidJarReader.java b/src/main/java/com/android/tools/metalava/apilevels/AndroidJarReader.java
index 52d1e179a9eee7d910aca94701cc1911ecdbb3d0..c5a7d5941576ef580fea16a9f8e51189fc732057 100644
--- a/src/main/java/com/android/tools/metalava/apilevels/AndroidJarReader.java
+++ b/src/main/java/com/android/tools/metalava/apilevels/AndroidJarReader.java
@@ -15,11 +15,11 @@
  */
 package com.android.tools.metalava.apilevels;
 
-import com.android.annotations.NonNull;
-import com.android.annotations.Nullable;
 import com.android.tools.metalava.model.Codebase;
 import com.google.common.io.ByteStreams;
 import com.google.common.io.Closeables;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.Opcodes;
 import org.objectweb.asm.tree.ClassNode;
@@ -44,9 +44,9 @@ public class AndroidJarReader {
     private File[] mApiLevels;
     private final Codebase mCodebase;
 
-    AndroidJarReader(@NonNull List<String> patterns,
+    AndroidJarReader(@NotNull List<String> patterns,
                      int minApi,
-                     @NonNull File currentJar,
+                     @NotNull File currentJar,
                      int currentApi,
                      @Nullable Codebase codebase) {
         mPatterns = patterns;
@@ -56,7 +56,7 @@ public class AndroidJarReader {
         mCodebase = codebase;
     }
 
-    AndroidJarReader(@NonNull File[] apiLevels, @Nullable Codebase codebase) {
+    AndroidJarReader(@NotNull File[] apiLevels, @Nullable Codebase codebase) {
         mApiLevels = apiLevels;
         mCodebase = codebase;
     }
diff --git a/src/main/java/com/android/tools/metalava/apilevels/ApiClass.java b/src/main/java/com/android/tools/metalava/apilevels/ApiClass.java
index 97a3b4ae17324dba4dc1b4f3e960498517d5253f..d215ec017bd95e508047190b680aa3572410efcd 100644
--- a/src/main/java/com/android/tools/metalava/apilevels/ApiClass.java
+++ b/src/main/java/com/android/tools/metalava/apilevels/ApiClass.java
@@ -15,8 +15,8 @@
  */
 package com.android.tools.metalava.apilevels;
 
-import com.android.annotations.NonNull;
 import com.google.common.collect.Iterables;
+import org.jetbrains.annotations.NotNull;
 
 import java.io.PrintStream;
 import java.util.ArrayList;
@@ -53,7 +53,7 @@ public class ApiClass extends ApiElement {
         addToArray(mSuperClasses, superClass, since);
     }
 
-    @NonNull
+    @NotNull
     List<ApiElement> getSuperClasses() {
         return mSuperClasses;
     }
diff --git a/src/main/java/com/android/tools/metalava/apilevels/ApiElement.java b/src/main/java/com/android/tools/metalava/apilevels/ApiElement.java
index ec756c30fcd8dbb837cbfe144220cb1b840c7377..ab5af662b8523e679952620898f4e2c2b40037c8 100644
--- a/src/main/java/com/android/tools/metalava/apilevels/ApiElement.java
+++ b/src/main/java/com/android/tools/metalava/apilevels/ApiElement.java
@@ -15,7 +15,7 @@
  */
 package com.android.tools.metalava.apilevels;
 
-import com.android.annotations.NonNull;
+import org.jetbrains.annotations.NotNull;
 
 import java.io.PrintStream;
 import java.util.ArrayList;
@@ -225,7 +225,7 @@ public class ApiElement implements Comparable<ApiElement> {
     }
 
     @Override
-    public int compareTo(@NonNull ApiElement other) {
+    public int compareTo(@NotNull ApiElement other) {
         return mName.compareTo(other.mName);
     }
 }
diff --git a/src/main/java/com/android/tools/metalava/apilevels/ApiGenerator.java b/src/main/java/com/android/tools/metalava/apilevels/ApiGenerator.java
index 5891a4b061b7be09877f7ad1dff09a5eae352593..afcac41265720ddb4ba0b8472b12d6410880c822 100644
--- a/src/main/java/com/android/tools/metalava/apilevels/ApiGenerator.java
+++ b/src/main/java/com/android/tools/metalava/apilevels/ApiGenerator.java
@@ -16,9 +16,9 @@
 
 package com.android.tools.metalava.apilevels;
 
-import com.android.annotations.NonNull;
-import com.android.annotations.Nullable;
 import com.android.tools.metalava.model.Codebase;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 import java.io.File;
 import java.io.IOException;
@@ -147,17 +147,17 @@ public class ApiGenerator {
 
     private static boolean generate(int minApi,
                                     int currentApi,
-                                    @NonNull File currentJar,
-                                    @NonNull List<String> patterns,
-                                    @NonNull String outPath,
+                                    @NotNull File currentJar,
+                                    @NotNull List<String> patterns,
+                                    @NotNull String outPath,
                                     @Nullable Codebase codebase) throws IOException {
         AndroidJarReader reader = new AndroidJarReader(patterns, minApi, currentJar, currentApi, codebase);
         Api api = reader.getApi();
         return createApiFile(new File(outPath), api);
     }
 
-    public static boolean generate(@NonNull File[] apiLevels,
-                                   @NonNull File outputFile,
+    public static boolean generate(@NotNull File[] apiLevels,
+                                   @NotNull File outputFile,
                                    @Nullable Codebase codebase) throws IOException {
         AndroidJarReader reader = new AndroidJarReader(apiLevels, codebase);
         Api api = reader.getApi();
diff --git a/src/main/java/com/android/tools/metalava/doclava1/Errors.java b/src/main/java/com/android/tools/metalava/doclava1/Errors.java
index 3f67cb803ba2a1e806083b50707ad65452a8770c..93ceee19c9cf534a4bc7046913c116e845048472 100644
--- a/src/main/java/com/android/tools/metalava/doclava1/Errors.java
+++ b/src/main/java/com/android/tools/metalava/doclava1/Errors.java
@@ -15,9 +15,9 @@
  */
 package com.android.tools.metalava.doclava1;
 
-import com.android.annotations.Nullable;
 import com.android.tools.metalava.Severity;
 import com.google.common.base.Splitter;
+import org.jetbrains.annotations.Nullable;
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
diff --git a/src/main/java/com/android/tools/metalava/doclava1/SourcePositionInfo.java b/src/main/java/com/android/tools/metalava/doclava1/SourcePositionInfo.java
index 015533ca054f5557a55d444753a31445f89a1ac7..a7f098e1eb9c1aeb2d64d58831783e8e0d9e3b06 100644
--- a/src/main/java/com/android/tools/metalava/doclava1/SourcePositionInfo.java
+++ b/src/main/java/com/android/tools/metalava/doclava1/SourcePositionInfo.java
@@ -16,7 +16,7 @@
 
 package com.android.tools.metalava.doclava1;
 
-import com.android.annotations.NonNull;
+import org.jetbrains.annotations.NotNull;
 
 // Copied from doclava1
 public class SourcePositionInfo implements Comparable {
@@ -55,7 +55,7 @@ public class SourcePositionInfo implements Comparable {
         return file + ':' + line;
     }
 
-    public int compareTo(@NonNull Object o) {
+    public int compareTo(@NotNull Object o) {
         SourcePositionInfo that = (SourcePositionInfo) o;
         int r = this.file.compareTo(that.file);
         if (r != 0) return r;