diff --git a/build.gradle b/build.gradle
index ee9b462..9c561d3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -254,6 +254,8 @@
     testCompile group: 'org.javassist', name: 'javassist', version: javassistVersion
 
     examplesAndroidOCompile group: 'org.ow2.asm', name: 'asm', version: asmVersion
+    examplesAndroidOCompile files("third_party/android_jar/lib-v26/android.jar")
+
     examplesAndroidPCompile group: 'org.ow2.asm', name: 'asm', version: asmVersion
     // Import Guava for @Nullable annotation
     examplesCompile "com.google.guava:guava:$guavaVersion"
@@ -1195,15 +1197,6 @@
     dependsOn buildR8ApiUsageSample
 }
 
-// Examples used by tests, where Android specific APIs are used.
-task buildExampleAndroidApi(type: JavaCompile) {
-    source = fileTree(dir: file("src/test/examplesAndroidApi"), include: "**/*.java")
-    destinationDir = file("build/test/examplesAndroidApi/classes")
-    classpath = files("third_party/android_jar/lib-v26/android.jar")
-    sourceCompatibility = JavaVersion.VERSION_1_8
-    targetCompatibility = JavaVersion.VERSION_1_8
-}
-
 // Proto lite generated code yields warnings when compiling with javac.
 // We change the options passed to javac to ignore it.
 compileExamplesJava.options.compilerArgs = ["-Xlint:none"]
@@ -1341,6 +1334,7 @@
         destinationDir = file("build/test/examplesAndroidO/classes")
         classpath = sourceSets.main.compileClasspath
         classpath += files("build/test/examplesAndroidOLegacy/classes")
+	classpath += files("third_party/android_jar/lib-v26/android.jar")
         sourceCompatibility = JavaVersion.VERSION_1_8
         targetCompatibility = JavaVersion.VERSION_1_8
         options.compilerArgs += ["-Xlint:-options", "-parameters"]
@@ -1505,7 +1499,6 @@
     dependsOn buildExampleJava11Jars
     dependsOn buildExampleJava17Jars
     dependsOn buildExampleJava20Jars
-    dependsOn buildExampleAndroidApi
     def examplesDir = file("src/test/examples")
     examplesDir.eachDir { dir ->
         def exampleOutputDir = file("build/test/examples/" + dir.getName());
diff --git a/src/test/examplesAndroidApi/classloader/Runner.java b/src/test/examplesAndroidO/classloader/Runner.java
similarity index 100%
rename from src/test/examplesAndroidApi/classloader/Runner.java
rename to src/test/examplesAndroidO/classloader/Runner.java
diff --git a/src/test/examplesAndroidApi/instrumentationtest/InstrumentationTest.java b/src/test/examplesAndroidO/instrumentationtest/InstrumentationTest.java
similarity index 100%
rename from src/test/examplesAndroidApi/instrumentationtest/InstrumentationTest.java
rename to src/test/examplesAndroidO/instrumentationtest/InstrumentationTest.java
diff --git a/src/test/examplesAndroidApi/softverificationerror/ApiCallerInlined.java b/src/test/examplesAndroidO/softverificationerror/ApiCallerInlined.java
similarity index 97%
rename from src/test/examplesAndroidApi/softverificationerror/ApiCallerInlined.java
rename to src/test/examplesAndroidO/softverificationerror/ApiCallerInlined.java
index 0ef2b5c..9cad395 100644
--- a/src/test/examplesAndroidApi/softverificationerror/ApiCallerInlined.java
+++ b/src/test/examplesAndroidO/softverificationerror/ApiCallerInlined.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.example.softverificationerror;
+package softverificationerror;
 
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
diff --git a/src/test/examplesAndroidApi/softverificationerror/ApiCallerOutlined.java b/src/test/examplesAndroidO/softverificationerror/ApiCallerOutlined.java
similarity index 91%
rename from src/test/examplesAndroidApi/softverificationerror/ApiCallerOutlined.java
rename to src/test/examplesAndroidO/softverificationerror/ApiCallerOutlined.java
index 47c3e61..907bd15 100644
--- a/src/test/examplesAndroidApi/softverificationerror/ApiCallerOutlined.java
+++ b/src/test/examplesAndroidO/softverificationerror/ApiCallerOutlined.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.example.softverificationerror;
+package softverificationerror;
 
 import android.os.Build;
 
diff --git a/src/test/examplesAndroidApi/softverificationerror/Main.java b/src/test/examplesAndroidO/softverificationerror/Main.java
similarity index 89%
rename from src/test/examplesAndroidApi/softverificationerror/Main.java
rename to src/test/examplesAndroidO/softverificationerror/Main.java
index f2a4376..fd507f2 100644
--- a/src/test/examplesAndroidApi/softverificationerror/Main.java
+++ b/src/test/examplesAndroidO/softverificationerror/Main.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.example.softverificationerror;
+package softverificationerror;
 
 public class Main {
 
diff --git a/src/test/java/com/android/tools/r8/desugar/b72538146/B72538146.java b/src/test/java/com/android/tools/r8/desugar/b72538146/B72538146.java
index 94ea7f5..85362c4 100644
--- a/src/test/java/com/android/tools/r8/desugar/b72538146/B72538146.java
+++ b/src/test/java/com/android/tools/r8/desugar/b72538146/B72538146.java
@@ -60,7 +60,7 @@
     testForD8()
         .addProgramFiles(
             Paths.get(ToolHelper.TESTS_BUILD_DIR)
-                .resolve("examplesAndroidApi")
+                .resolve("examplesAndroidO")
                 .resolve("classes")
                 .resolve("classloader")
                 .resolve("Runner.class"))
diff --git a/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java b/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
index 730f2bf..f7a8f50 100644
--- a/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
+++ b/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
@@ -41,7 +41,7 @@
         .addProgramFiles(
             Paths.get(
                 ToolHelper.TESTS_BUILD_DIR,
-                "examplesAndroidApi",
+                "examplesAndroidO",
                 "classes",
                 "instrumentationtest",
                 "InstrumentationTest.class"))
