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],
)