Support legacy multidex.

Fix the create_main_dex_list stub script to find the dx jar binary correctly.

RELNOTES: None
PiperOrigin-RevId: 184532530
diff --git a/src/test/shell/bazel/android/android_helper.sh b/src/test/shell/bazel/android/android_helper.sh
index 826d966..c2a9ba1 100755
--- a/src/test/shell/bazel/android/android_helper.sh
+++ b/src/test/shell/bazel/android/android_helper.sh
@@ -35,6 +35,7 @@
 function create_android_binary() {
   mkdir -p java/bazel
   cat > java/bazel/BUILD <<EOF
+package(default_visibility = ["//visibility:public"])
 aar_import(
     name = "aar",
     aar = "sample.aar",
diff --git a/src/test/shell/bazel/android/android_integration_test.sh b/src/test/shell/bazel/android/android_integration_test.sh
index 5578160..92764e0 100755
--- a/src/test/shell/bazel/android/android_integration_test.sh
+++ b/src/test/shell/bazel/android/android_integration_test.sh
@@ -61,4 +61,23 @@
     "Failed to build android_binary with custom Android manifest file name"
 }
 
+function test_legacy_multidex() {
+  create_new_workspace
+  setup_android_sdk_support
+  create_android_binary
+  mkdir -p java/bazel/multidex
+  cat > java/bazel/multidex/BUILD <<EOF
+android_binary(
+    name = "bin",
+    manifest = "AndroidManifest.xml",
+    multidex = "legacy",
+    deps = ["//java/bazel:lib"],
+)
+EOF
+  cat > java/bazel/multidex/AndroidManifest.xml <<EOF
+<manifest package="bazel.multidex" />
+EOF
+  assert_build //java/bazel/multidex:bin
+}
+
 run_suite "Android integration tests"
diff --git a/tools/android/android_sdk_repository_template.bzl b/tools/android/android_sdk_repository_template.bzl
index 387d014..f9b618d 100644
--- a/tools/android/android_sdk_repository_template.bzl
+++ b/tools/android/android_sdk_repository_template.bzl
@@ -219,8 +219,7 @@
             "STRIPPED_JAR=$$2",
             "JAR=$$3",
             "" +
-            "DIRNAME=$$(dirname $$0)",
-            "JAVA_BINARY=TBD/main_dex_list_creator_java",  # Proper runfiles path comes here
+            "JAVA_BINARY=$$0.runfiles/%s/main_dex_list_creator_java" % name,
             "$$JAVA_BINARY $$STRIPPED_JAR $$JAR > $$MAIN_DEX_LIST",
             "exit $$?",
             "",
@@ -245,14 +244,9 @@
       runtime_deps = [":dx_jar_import"],
   )
 
-  native.filegroup(
-      name = "dx_jar",
-      srcs = ["build-tools/%s/lib/dx.jar" % build_tools_directory],
-  )
-
   native.java_import(
       name = "dx_jar_import",
-      jars = [":dx_jar"],
+      jars = ["build-tools/%s/lib/dx.jar" % build_tools_directory],
   )