diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java
index dd41b0b..6ef5644 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java
@@ -393,33 +393,22 @@
       Sequence<?> resourceConfigurationFilters, // <String>
       Sequence<?> densities, // <String>
       Sequence<?> noCompressExtensions, // <String>
-      String aaptVersionString,
       Location location,
       StarlarkThread thread)
       throws EvalException {
+    AndroidAaptVersion aaptVersion = AndroidAaptVersion.AAPT2;
 
-    SkylarkErrorReporter errorReporter =
-        SkylarkErrorReporter.from(ctx.getRuleErrorConsumer(), location);
-    AndroidAaptVersion aaptVersion;
-
-    try {
-      aaptVersion =
-          AndroidAaptVersion.chooseTargetAaptVersion(ctx, errorReporter, aaptVersionString);
-
-      return new BinaryDataSettings(
-          aaptVersion,
-          fromNoneableOrDefault(
-              shrinkResources, Boolean.class, ctx.getAndroidConfig().useAndroidResourceShrinking()),
-          ResourceFilterFactory.from(
-              aaptVersion,
-              resourceConfigurationFilters.getContents(
-                  String.class, "resource_configuration_filters"),
-              densities.getContents(String.class, "densities")),
-          ImmutableList.copyOf(
-              noCompressExtensions.getContents(String.class, "nocompress_extensions")));
-    } catch (RuleErrorException e) {
-      throw handleRuleException(errorReporter, e);
-    }
+    return new BinaryDataSettings(
+        aaptVersion,
+        fromNoneableOrDefault(
+            shrinkResources, Boolean.class, ctx.getAndroidConfig().useAndroidResourceShrinking()),
+        ResourceFilterFactory.from(
+            aaptVersion,
+            resourceConfigurationFilters.getContents(
+                String.class, "resource_configuration_filters"),
+            densities.getContents(String.class, "densities")),
+        ImmutableList.copyOf(
+            noCompressExtensions.getContents(String.class, "nocompress_extensions")));
   }
 
   @Override
@@ -439,7 +428,6 @@
         StarlarkList.empty(),
         StarlarkList.empty(),
         StarlarkList.empty(),
-        "auto",
         location,
         thread);
   }
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidDataProcessingApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidDataProcessingApi.java
index 1696680..885aa8a 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidDataProcessingApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidDataProcessingApi.java
@@ -710,15 +710,6 @@
             doc =
                 "A list of file extension to leave uncompressed in apk. Templates must be"
                     + " expanded before passing this value in."),
-        @Param(
-            name = "aapt_version",
-            positional = false,
-            defaultValue = "'auto'",
-            type = String.class,
-            named = true,
-            doc =
-                "The version of aapt to use. Defaults to 'auto'. 'aapt' and 'aapt2' are also"
-                    + " supported."),
       },
       useLocation = true,
       useStarlarkThread = true,
@@ -732,7 +723,6 @@
       Sequence<?> resourceConfigurationFilters, // <String>
       Sequence<?> densities, // <String>
       Sequence<?> noCompressExtensions, // <String>
-      String aaptVersionString,
       Location location,
       StarlarkThread thread)
       throws EvalException;
