diff --git a/activity/activity/build.gradle b/activity/activity/build.gradle
index faad5d3..1cd39fb 100644
--- a/activity/activity/build.gradle
+++ b/activity/activity/build.gradle
@@ -15,9 +15,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.activity"
 }
 
@@ -45,7 +42,6 @@
     androidTestImplementation(libs.testRunner)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":internal-testutils-runtime"), {
         exclude group: "androidx.activity", module: "activity"
     })
diff --git a/activity/activity/src/androidTest/java/androidx/activity/LeakCanaryApp.kt b/activity/activity/src/androidTest/java/androidx/activity/LeakCanaryApp.kt
index c73d9f93..69d82b7 100644
--- a/activity/activity/src/androidTest/java/androidx/activity/LeakCanaryApp.kt
+++ b/activity/activity/src/androidTest/java/androidx/activity/LeakCanaryApp.kt
@@ -16,12 +16,12 @@
 
 package androidx.activity
 
-import androidx.multidex.MultiDexApplication
+import android.app.Application
 import leakcanary.LeakCanary
 import shark.AndroidReferenceMatchers
 import shark.ReferenceMatcher
 
-class LeakCanaryApp : MultiDexApplication() {
+class LeakCanaryApp : Application() {
     override fun onCreate() {
         super.onCreate()
         @Suppress("UNCHECKED_CAST")
diff --git a/appcompat/appcompat-resources/build.gradle b/appcompat/appcompat-resources/build.gradle
index f9117cb..50d8950 100644
--- a/appcompat/appcompat-resources/build.gradle
+++ b/appcompat/appcompat-resources/build.gradle
@@ -48,14 +48,12 @@
     androidTestImplementation(project(":internal-testutils-runtime"), {
         exclude group: "androidx.appcompat", module: "appcompat-resources"
     })
-    androidTestImplementation(libs.multidex)
 }
 
 android {
     defaultConfig {
         // This disables the builds tools automatic vector -> PNG generation
         generatedDensities = []
-        multiDexEnabled = true
     }
 
     aaptOptions {
diff --git a/appcompat/appcompat/build.gradle b/appcompat/appcompat/build.gradle
index 2e18a39..aa6cbc1 100644
--- a/appcompat/appcompat/build.gradle
+++ b/appcompat/appcompat/build.gradle
@@ -63,7 +63,6 @@
         exclude group: "androidx.appcompat", module: "appcompat"
         exclude group: "androidx.core", module: "core"
     })
-    androidTestImplementation(libs.multidex)
 
     testImplementation(libs.kotlinStdlib)
     testImplementation(libs.testCore)
@@ -77,7 +76,6 @@
     defaultConfig {
         // This disables the builds tools automatic vector -> PNG generation
         generatedDensities = []
-        multiDexEnabled = true
     }
 
     sourceSets {
diff --git a/appcompat/appcompat/src/androidTest/AndroidManifest.xml b/appcompat/appcompat/src/androidTest/AndroidManifest.xml
index 71c9ecf..7f44469 100644
--- a/appcompat/appcompat/src/androidTest/AndroidManifest.xml
+++ b/appcompat/appcompat/src/androidTest/AndroidManifest.xml
@@ -21,7 +21,6 @@
         tools:overrideLibrary="android_libs.ub_uiautomator, androidx.test.uiautomator" />
 
     <application
-        android:name="androidx.multidex.MultiDexApplication"
         android:supportsRtl="true"
         android:theme="@style/Theme.AppCompat">
 
diff --git a/appsearch/appsearch-builtin-types/build.gradle b/appsearch/appsearch-builtin-types/build.gradle
index 2af9801..d709547 100644
--- a/appsearch/appsearch-builtin-types/build.gradle
+++ b/appsearch/appsearch-builtin-types/build.gradle
@@ -37,13 +37,11 @@
     androidTestImplementation project(':appsearch:appsearch')
     androidTestImplementation project(':appsearch:appsearch-local-storage')
     androidTestImplementation project(':appsearch:appsearch-test-util')
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRunner)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.junit)
 }
 
@@ -60,8 +58,4 @@
 
 android {
     namespace "androidx.appsearch.builtintypes"
-
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
diff --git a/appsearch/appsearch-debug-view/build.gradle b/appsearch/appsearch-debug-view/build.gradle
index a16fc5d..5d774b7 100644
--- a/appsearch/appsearch-debug-view/build.gradle
+++ b/appsearch/appsearch-debug-view/build.gradle
@@ -29,9 +29,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.appsearch.debugview"
 }
 
@@ -47,7 +44,6 @@
     implementation('com.google.android.material:material:1.0.0')
     implementation(libs.constraintLayout)
     implementation(libs.guavaAndroid)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
diff --git a/appsearch/appsearch-debug-view/samples/build.gradle b/appsearch/appsearch-debug-view/samples/build.gradle
index 9b9f3f5..25b9618 100644
--- a/appsearch/appsearch-debug-view/samples/build.gradle
+++ b/appsearch/appsearch-debug-view/samples/build.gradle
@@ -29,9 +29,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.appsearch.debugview.samples"
 }
 
@@ -40,7 +37,6 @@
 
     api('androidx.annotation:annotation:1.1.0')
 
-    implementation(libs.multidex)
     implementation project(':appsearch:appsearch')
     implementation project(':appsearch:appsearch-local-storage')
     implementation project(':appsearch:appsearch-debug-view')
diff --git a/appsearch/appsearch-ktx/build.gradle b/appsearch/appsearch-ktx/build.gradle
index e771a6d..4196a33 100644
--- a/appsearch/appsearch-ktx/build.gradle
+++ b/appsearch/appsearch-ktx/build.gradle
@@ -37,7 +37,6 @@
     androidTestImplementation project(':appsearch:appsearch')
     androidTestImplementation project(':appsearch:appsearch-local-storage')
     androidTestImplementation project(':appsearch:appsearch-test-util')
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
@@ -53,8 +52,4 @@
 
 android {
     namespace "androidx.appsearch.ktx"
-
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
diff --git a/appsearch/appsearch-local-storage/build.gradle b/appsearch/appsearch-local-storage/build.gradle
index 66993ac..7c2ab0f 100644
--- a/appsearch/appsearch-local-storage/build.gradle
+++ b/appsearch/appsearch-local-storage/build.gradle
@@ -55,7 +55,6 @@
                 targets "icing"
             }
         }
-        multiDexEnabled true
     }
     externalNativeBuild {
         cmake {
@@ -88,7 +87,6 @@
     implementation("androidx.core:core:1.6.0")
 
     androidTestImplementation project(':appsearch:appsearch-test-util')
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
diff --git a/appsearch/appsearch-test-util/build.gradle b/appsearch/appsearch-test-util/build.gradle
index 7022e83..98e2ce4 100644
--- a/appsearch/appsearch-test-util/build.gradle
+++ b/appsearch/appsearch-test-util/build.gradle
@@ -28,7 +28,6 @@
     implementation('androidx.collection:collection:1.1.0')
     implementation(libs.truth)
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
@@ -44,8 +43,4 @@
 
 android {
     namespace "androidx.appsearch.testutil"
-
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
diff --git a/appsearch/appsearch/build.gradle b/appsearch/appsearch/build.gradle
index 0aa30ef..8d67baa 100644
--- a/appsearch/appsearch/build.gradle
+++ b/appsearch/appsearch/build.gradle
@@ -29,9 +29,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
@@ -65,7 +62,6 @@
     // This dependency is unused by the test implementation, but it's here to validate that
     // icing's jarjar'ing of the Protobuf_lite doesn't conflict with external dependencies.
     androidTestImplementation(libs.protobufLite)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
diff --git a/benchmark/benchmark-macro-junit4/build.gradle b/benchmark/benchmark-macro-junit4/build.gradle
index 849e4e8..489cd84 100644
--- a/benchmark/benchmark-macro-junit4/build.gradle
+++ b/benchmark/benchmark-macro-junit4/build.gradle
@@ -33,7 +33,6 @@
 android {
     defaultConfig {
         minSdkVersion 23
-        multiDexEnabled true
     }
     namespace "androidx.benchmark.macro.junit4"
 }
diff --git a/biometric/biometric/build.gradle b/biometric/biometric/build.gradle
index 1a3dfdc..c7b5373 100644
--- a/biometric/biometric/build.gradle
+++ b/biometric/biometric/build.gradle
@@ -28,12 +28,6 @@
     id("com.android.library")
 }
 
-android {
-    defaultConfig {
-        multiDexEnabled true
-    }
-}
-
 dependencies {
     // Public API dependencies
     api("androidx.annotation:annotation:1.6.0")
@@ -62,7 +56,6 @@
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation("androidx.fragment:fragment-testing:1.4.1")
 }
 
diff --git a/camera/camera-camera2-pipe-integration/build.gradle b/camera/camera-camera2-pipe-integration/build.gradle
index dc3e288..44442f2 100644
--- a/camera/camera-camera2-pipe-integration/build.gradle
+++ b/camera/camera-camera2-pipe-integration/build.gradle
@@ -66,7 +66,6 @@
     testImplementation("androidx.lifecycle:lifecycle-runtime-testing:2.3.1")
     testImplementation(project(":camera:camera-video"))
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.testRunner)
@@ -86,9 +85,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/camera-camera2/build.gradle b/camera/camera-camera2/build.gradle
index fdea246..04ce49c 100644
--- a/camera/camera-camera2/build.gradle
+++ b/camera/camera-camera2/build.gradle
@@ -56,7 +56,6 @@
     testImplementation(libs.junit) // Needed for Assert.assertThrows
     testImplementation("org.codehaus.plexus:plexus-utils:3.4.1")
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRunner)
@@ -80,10 +79,6 @@
     androidTestImplementation("androidx.test.espresso:espresso-core:3.3.0")
 }
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
diff --git a/camera/camera-core/build.gradle b/camera/camera-core/build.gradle
index 5610643..de6ce16 100644
--- a/camera/camera-core/build.gradle
+++ b/camera/camera-core/build.gradle
@@ -65,7 +65,6 @@
     testImplementation(project(":camera:camera-lifecycle"))
     testImplementation("androidx.exifinterface:exifinterface:1.3.2")
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRunner)
@@ -85,7 +84,6 @@
 
 android {
     defaultConfig {
-        multiDexEnabled = true
         externalNativeBuild {
             def versionScript = file("src/main/cpp/jni.lds").getAbsolutePath()
             cmake {
diff --git a/camera/camera-effects-still-portrait/build.gradle b/camera/camera-effects-still-portrait/build.gradle
index 4e659a7..2e9f9d0 100644
--- a/camera/camera-effects-still-portrait/build.gradle
+++ b/camera/camera-effects-still-portrait/build.gradle
@@ -25,9 +25,6 @@
     api(project(":camera:camera-core"))
 }
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     testOptions.unitTests.includeAndroidResources = true
     namespace "androidx.camera.effects.stillportrait"
 }
diff --git a/camera/camera-effects/build.gradle b/camera/camera-effects/build.gradle
index d55eea5..5eae11a 100644
--- a/camera/camera-effects/build.gradle
+++ b/camera/camera-effects/build.gradle
@@ -34,7 +34,6 @@
     testImplementation(libs.testRules)
     testImplementation(libs.testCore)
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRunner)
@@ -49,9 +48,6 @@
     androidTestImplementation("androidx.concurrent:concurrent-futures-ktx:1.1.0")
 }
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     testOptions.unitTests.includeAndroidResources = true
     namespace "androidx.camera.effects"
 }
diff --git a/camera/camera-extensions/build.gradle b/camera/camera-extensions/build.gradle
index 3ca2e3d..2f09630 100644
--- a/camera/camera-extensions/build.gradle
+++ b/camera/camera-extensions/build.gradle
@@ -58,7 +58,6 @@
     androidTestImplementation(libs.kotlinStdlib)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has its own MockMaker
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":camera:camera-camera2"))
     androidTestImplementation(project(":camera:camera-camera2-pipe-integration"))
     androidTestImplementation(project(":camera:camera-lifecycle"))
@@ -74,10 +73,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
diff --git a/camera/camera-feature-combination-query-play-services/build.gradle b/camera/camera-feature-combination-query-play-services/build.gradle
index 04ca4c2..721b314 100644
--- a/camera/camera-feature-combination-query-play-services/build.gradle
+++ b/camera/camera-feature-combination-query-play-services/build.gradle
@@ -35,10 +35,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/camera-feature-combination-query/build.gradle b/camera/camera-feature-combination-query/build.gradle
index 12a3dcb..12d1d72 100644
--- a/camera/camera-feature-combination-query/build.gradle
+++ b/camera/camera-feature-combination-query/build.gradle
@@ -34,10 +34,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/camera-lifecycle/build.gradle b/camera/camera-lifecycle/build.gradle
index 194040b..f3d649a1 100644
--- a/camera/camera-lifecycle/build.gradle
+++ b/camera/camera-lifecycle/build.gradle
@@ -41,7 +41,6 @@
 
     annotationProcessor(libs.autoValue)
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRunner)
@@ -60,9 +59,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/camera-mlkit-vision/build.gradle b/camera/camera-mlkit-vision/build.gradle
index b339b1a..0854ab8 100644
--- a/camera/camera-mlkit-vision/build.gradle
+++ b/camera/camera-mlkit-vision/build.gradle
@@ -44,10 +44,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/camera-testing/build.gradle b/camera/camera-testing/build.gradle
index d366b52..03c370b 100644
--- a/camera/camera-testing/build.gradle
+++ b/camera/camera-testing/build.gradle
@@ -61,7 +61,6 @@
     testImplementation(libs.robolectric)
     testImplementation(libs.mockitoCore4)
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation("androidx.test:core:$testCoreVersion")
     androidTestImplementation("androidx.test:rules:$testRulesVersion")
@@ -76,7 +75,6 @@
 android {
     defaultConfig {
         externalNativeBuild {
-            multiDexEnabled = true
             cmake {
                 cppFlags "-std=c++17"
                 arguments "-DCMAKE_VERBOSE_MAKEFILE=ON"
diff --git a/camera/camera-testlib-extensions/build.gradle b/camera/camera-testlib-extensions/build.gradle
index 155b67b..2d3c393 100644
--- a/camera/camera-testlib-extensions/build.gradle
+++ b/camera/camera-testlib-extensions/build.gradle
@@ -34,10 +34,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
-
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/camera-video/build.gradle b/camera/camera-video/build.gradle
index e4d6c980..22fafd6 100644
--- a/camera/camera-video/build.gradle
+++ b/camera/camera-video/build.gradle
@@ -47,7 +47,6 @@
         exclude group: "androidx.camera", module: "camera-core"
     })
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(path: ":camera:camera-camera2"))
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
@@ -75,10 +74,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/camera-view/build.gradle b/camera/camera-view/build.gradle
index 7ca26f6..34164df 100644
--- a/camera/camera-view/build.gradle
+++ b/camera/camera-view/build.gradle
@@ -55,7 +55,6 @@
     testImplementation(project(":camera:camera-camera2"))
     testImplementation(project(":camera:camera-testing"))
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.mockitoCore)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
@@ -76,10 +75,6 @@
     androidTestImplementation("androidx.test.espresso:espresso-core:3.3.0")
 }
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/camera-viewfinder/build.gradle b/camera/camera-viewfinder/build.gradle
index 2055edd..dc43d15 100644
--- a/camera/camera-viewfinder/build.gradle
+++ b/camera/camera-viewfinder/build.gradle
@@ -53,7 +53,6 @@
     testImplementation(libs.testRules)
     testImplementation(libs.testCore)
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.mockitoCore)
     androidTestImplementation(libs.espressoCore)
     androidTestImplementation(libs.testExtJunit)
@@ -68,10 +67,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     lintOptions {
         enable 'CameraXQuirksClassDetector'
     }
diff --git a/camera/integration-tests/avsynctestapp/build.gradle b/camera/integration-tests/avsynctestapp/build.gradle
index 2b5f84c..1b66787 100644
--- a/camera/integration-tests/avsynctestapp/build.gradle
+++ b/camera/integration-tests/avsynctestapp/build.gradle
@@ -26,8 +26,6 @@
 
     defaultConfig {
         applicationId "androidx.camera.integration.avsync"
-        minSdkVersion 21
-        multiDexEnabled true
     }
 
     buildTypes {
diff --git a/camera/integration-tests/camerapipetestapp/build.gradle b/camera/integration-tests/camerapipetestapp/build.gradle
index 3bd216a..817f483 100644
--- a/camera/integration-tests/camerapipetestapp/build.gradle
+++ b/camera/integration-tests/camerapipetestapp/build.gradle
@@ -24,8 +24,6 @@
 android {
     defaultConfig {
         applicationId "androidx.camera.integration.camera2.pipe"
-        versionCode 1
-        multiDexEnabled true
     }
 
     sourceSets {
diff --git a/camera/integration-tests/coretestapp/build.gradle b/camera/integration-tests/coretestapp/build.gradle
index b7e1643..2c76e8d 100644
--- a/camera/integration-tests/coretestapp/build.gradle
+++ b/camera/integration-tests/coretestapp/build.gradle
@@ -23,8 +23,6 @@
 android {
     defaultConfig {
         applicationId "androidx.camera.integration.core"
-        versionCode 1
-        multiDexEnabled true
 
         externalNativeBuild {
             cmake {
diff --git a/camera/integration-tests/diagnosetestapp/build.gradle b/camera/integration-tests/diagnosetestapp/build.gradle
index 320381fa..ecf5b7f 100644
--- a/camera/integration-tests/diagnosetestapp/build.gradle
+++ b/camera/integration-tests/diagnosetestapp/build.gradle
@@ -23,7 +23,6 @@
 android {
     defaultConfig {
         applicationId "androidx.camera.integration.diagnose"
-        multiDexEnabled true
     }
 
     buildTypes {
diff --git a/camera/integration-tests/extensionstestapp/build.gradle b/camera/integration-tests/extensionstestapp/build.gradle
index 9ebe099..5de107f7 100644
--- a/camera/integration-tests/extensionstestapp/build.gradle
+++ b/camera/integration-tests/extensionstestapp/build.gradle
@@ -33,8 +33,6 @@
 android {
     defaultConfig {
         applicationId "androidx.camera.integration.extensions"
-        versionCode 1
-        multiDexEnabled true
     }
 
     buildTypes {
diff --git a/camera/integration-tests/viewfindertestapp/build.gradle b/camera/integration-tests/viewfindertestapp/build.gradle
index 9791b83..d6be6e3 100644
--- a/camera/integration-tests/viewfindertestapp/build.gradle
+++ b/camera/integration-tests/viewfindertestapp/build.gradle
@@ -24,7 +24,6 @@
 android {
     defaultConfig {
         applicationId "androidx.camera.integration.viewfinder"
-        multiDexEnabled true
     }
 
     buildTypes {
diff --git a/camera/integration-tests/viewtestapp/build.gradle b/camera/integration-tests/viewtestapp/build.gradle
index 4a6fa59..f3896a1 100644
--- a/camera/integration-tests/viewtestapp/build.gradle
+++ b/camera/integration-tests/viewtestapp/build.gradle
@@ -24,8 +24,6 @@
 android {
     defaultConfig {
         applicationId "androidx.camera.integration.view"
-        versionCode 1
-        multiDexEnabled true
     }
 
     sourceSets {
@@ -45,9 +43,6 @@
         }
     }
 
-    kotlinOptions {
-        jvmTarget = '1.8'
-    }
     namespace "androidx.camera.integration.view"
 }
 
diff --git a/car/app/app-projected/build.gradle b/car/app/app-projected/build.gradle
index 58f7b7ae..ce471c8 100644
--- a/car/app/app-projected/build.gradle
+++ b/car/app/app-projected/build.gradle
@@ -46,9 +46,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     buildFeatures {
         aidl = true
     }
diff --git a/car/app/app-testing/build.gradle b/car/app/app-testing/build.gradle
index eb182b1..cb47a3a 100644
--- a/car/app/app-testing/build.gradle
+++ b/car/app/app-testing/build.gradle
@@ -49,9 +49,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     lintOptions {
         disable("InvalidPackage")
     }
diff --git a/car/app/app/build.gradle b/car/app/app/build.gradle
index 7ca22db..6c9e1cb0 100644
--- a/car/app/app/build.gradle
+++ b/car/app/app/build.gradle
@@ -92,9 +92,6 @@
         aidl = true
     }
     defaultConfig {
-        multiDexEnabled = true
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-
         resValue "string", "car_app_library_version", androidx.LibraryVersions.CAR_APP.toString()
         consumerProguardFiles "proguard-rules.pro"
     }
diff --git a/coordinatorlayout/coordinatorlayout/build.gradle b/coordinatorlayout/coordinatorlayout/build.gradle
index 5621fbc..4ac5cf4 100644
--- a/coordinatorlayout/coordinatorlayout/build.gradle
+++ b/coordinatorlayout/coordinatorlayout/build.gradle
@@ -32,7 +32,6 @@
     androidTestImplementation(project(":internal-testutils-runtime"), {
         exclude group: "androidx.coordinatorlayout", module: "coordinatorlayout"
     })
-    androidTestImplementation(libs.multidex)
 }
 
 android {
@@ -45,9 +44,6 @@
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
-    defaultConfig {
-        multiDexEnabled = true
-    }
 
     testOptions {
         animationsDisabled = true
diff --git a/core/core-google-shortcuts/build.gradle b/core/core-google-shortcuts/build.gradle
index 43f2282..83f4b43 100644
--- a/core/core-google-shortcuts/build.gradle
+++ b/core/core-google-shortcuts/build.gradle
@@ -23,10 +23,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
@@ -49,7 +45,6 @@
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.junit)
 }
 
diff --git a/core/core-google-shortcuts/src/androidTest/AndroidManifest.xml b/core/core-google-shortcuts/src/androidTest/AndroidManifest.xml
index de5ea9d..aaf4b702 100644
--- a/core/core-google-shortcuts/src/androidTest/AndroidManifest.xml
+++ b/core/core-google-shortcuts/src/androidTest/AndroidManifest.xml
@@ -17,7 +17,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools">
     <uses-sdk tools:overrideLibrary="com.google.firebase.icing"/>
-    <application android:name="androidx.multidex.MultiDexApplication">
+    <application>
         <activity android:name=".TestActivity"/>
     </application>
 </manifest>
diff --git a/core/core-telecom/build.gradle b/core/core-telecom/build.gradle
index 6e921f9..e5b92f4 100644
--- a/core/core-telecom/build.gradle
+++ b/core/core-telecom/build.gradle
@@ -49,7 +49,6 @@
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.espressoCore)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.kotlinCoroutinesTest)
 }
 
diff --git a/core/core/build.gradle b/core/core/build.gradle
index 9b69c43..a646db3 100644
--- a/core/core/build.gradle
+++ b/core/core/build.gradle
@@ -43,7 +43,6 @@
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.espressoCore, excludes.espresso)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testUiautomator)
 
     androidTestImplementation("androidx.lifecycle:lifecycle-runtime-testing:2.6.2")
@@ -94,9 +93,6 @@
                 "mockito-extensions/org.mockito.plugins.StackTraceCleanerProvider"
         ]
     }
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.core"
 }
 
diff --git a/core/core/src/androidTest/AndroidManifest.xml b/core/core/src/androidTest/AndroidManifest.xml
index 284af21..fd2d780 100644
--- a/core/core/src/androidTest/AndroidManifest.xml
+++ b/core/core/src/androidTest/AndroidManifest.xml
@@ -20,7 +20,6 @@
     <uses-sdk tools:overrideLibrary="android_libs.ub_uiautomator, androidx.test.uiautomator" />
 
     <application
-        android:name="androidx.multidex.MultiDexApplication"
         android:exported="true"
         android:supportsRtl="true"
         android:theme="@style/TestActivityTheme">
diff --git a/core/haptics/haptics/integration-tests/demos/build.gradle b/core/haptics/haptics/integration-tests/demos/build.gradle
index 3effc26..9695d73 100644
--- a/core/haptics/haptics/integration-tests/demos/build.gradle
+++ b/core/haptics/haptics/integration-tests/demos/build.gradle
@@ -30,7 +30,6 @@
 android {
     defaultConfig {
         applicationId "androidx.core.haptics.demos"
-        multiDexEnabled true
     }
     namespace "androidx.core.haptics.demos"
 }
diff --git a/core/uwb/uwb-rxjava3/build.gradle b/core/uwb/uwb-rxjava3/build.gradle
index 92b8896..209bb343 100644
--- a/core/uwb/uwb-rxjava3/build.gradle
+++ b/core/uwb/uwb-rxjava3/build.gradle
@@ -46,13 +46,11 @@
     androidTestImplementation('com.google.android.gms:play-services-nearby:19.2.0', {
         exclude group: "androidx.core"
     })
-    androidTestImplementation(libs.multidex)
 }
 
 android {
     defaultConfig {
         minSdkVersion 31
-        multiDexEnabled = true
     }
 
     namespace "androidx.core.uwb.rxjava3"
diff --git a/core/uwb/uwb/build.gradle b/core/uwb/uwb/build.gradle
index 6283591..337d95b 100644
--- a/core/uwb/uwb/build.gradle
+++ b/core/uwb/uwb/build.gradle
@@ -49,7 +49,6 @@
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.espressoCore)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
@@ -73,6 +72,5 @@
     }
     defaultConfig {
         minSdkVersion 23
-        multiDexEnabled = true
     }
 }
diff --git a/credentials/credentials-fido/build.gradle b/credentials/credentials-fido/build.gradle
index 098bf8b..8d0fd93 100644
--- a/credentials/credentials-fido/build.gradle
+++ b/credentials/credentials-fido/build.gradle
@@ -40,7 +40,6 @@
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.mockitoAndroid)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":internal-testutils-truth"))
     androidTestImplementation(libs.kotlinCoroutinesAndroid)
     androidTestImplementation("androidx.core:core-ktx:1.10.0")
@@ -48,10 +47,6 @@
 
 android {
     namespace "androidx.credentials.fido"
-
-    defaultConfig {
-        multiDexEnabled = true
-    }
 }
 
 androidx {
diff --git a/credentials/credentials-play-services-auth/build.gradle b/credentials/credentials-play-services-auth/build.gradle
index e08f6c9..6b0091c 100644
--- a/credentials/credentials-play-services-auth/build.gradle
+++ b/credentials/credentials-play-services-auth/build.gradle
@@ -55,7 +55,6 @@
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.mockitoAndroid)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":internal-testutils-truth"))
     androidTestImplementation(libs.kotlinCoroutinesAndroid)
     androidTestImplementation("androidx.core:core-ktx:1.10.0")
@@ -69,10 +68,6 @@
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
-
-    defaultConfig {
-        multiDexEnabled = true
-    }
 }
 
 androidx {
diff --git a/datastore/datastore-sampleapp/build.gradle b/datastore/datastore-sampleapp/build.gradle
index 9a94612..9a4b7c10 100644
--- a/datastore/datastore-sampleapp/build.gradle
+++ b/datastore/datastore-sampleapp/build.gradle
@@ -71,8 +71,5 @@
 
 android {
     namespace "com.example.datastoresampleapp"
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
 
diff --git a/fragment/fragment-testing/build.gradle b/fragment/fragment-testing/build.gradle
index 1f536bc..8247092 100644
--- a/fragment/fragment-testing/build.gradle
+++ b/fragment/fragment-testing/build.gradle
@@ -43,7 +43,6 @@
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has it"s own MockMaker
-    androidTestImplementation(libs.multidex)
 
     lintPublish(project(":fragment:fragment-testing-lint"))
 }
@@ -59,7 +58,4 @@
 
 android {
     namespace "androidx.fragment.testing"
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
diff --git a/fragment/fragment/build.gradle b/fragment/fragment/build.gradle
index 7fb1d30..1870df9 100644
--- a/fragment/fragment/build.gradle
+++ b/fragment/fragment/build.gradle
@@ -25,10 +25,6 @@
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
-
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.fragment"
 }
 
@@ -63,7 +59,6 @@
     androidTestImplementation(libs.espressoCore, excludes.espresso)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has it"s own MockMaker
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":internal-testutils-runtime"), {
         exclude group: "androidx.fragment", module: "fragment"
     })
diff --git a/fragment/fragment/src/androidTest/java/androidx/fragment/app/LeakCanaryApp.kt b/fragment/fragment/src/androidTest/java/androidx/fragment/app/LeakCanaryApp.kt
index f64a8d1..f29c00f 100644
--- a/fragment/fragment/src/androidTest/java/androidx/fragment/app/LeakCanaryApp.kt
+++ b/fragment/fragment/src/androidTest/java/androidx/fragment/app/LeakCanaryApp.kt
@@ -16,6 +16,6 @@
 
 package androidx.fragment.app
 
-import androidx.multidex.MultiDexApplication
+import android.app.Application
 
-class LeakCanaryApp : MultiDexApplication()
+class LeakCanaryApp : Application()
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 3280d9c..9d7e708 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -230,7 +230,6 @@
 moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" }
 moshiAdapters = { module = "com.squareup.moshi:moshi-adapters", version.ref = "moshi" }
 moshiCodeGen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version.ref = "moshi" }
-multidex = { module = "androidx.multidex:multidex", version = "2.0.1" }
 nullaway = { module = "com.uber.nullaway:nullaway", version = "0.10.18" }
 okhttpMockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version = "3.14.7" }
 okio = { module = "com.squareup.okio:okio", version = "3.4.0" }
diff --git a/graphics/graphics-shapes/build.gradle b/graphics/graphics-shapes/build.gradle
index 22d974f..a782cc0 100644
--- a/graphics/graphics-shapes/build.gradle
+++ b/graphics/graphics-shapes/build.gradle
@@ -123,9 +123,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.graphics.shapes"
 }
 
diff --git a/leanback/leanback/build.gradle b/leanback/leanback/build.gradle
index 6d5cdcf..4790443 100644
--- a/leanback/leanback/build.gradle
+++ b/leanback/leanback/build.gradle
@@ -12,12 +12,6 @@
     id("com.android.library")
 }
 
-android {
-    defaultConfig {
-        multiDexEnabled true
-    }
-}
-
 dependencies {
     api("androidx.annotation:annotation:1.2.0")
     api("androidx.interpolator:interpolator:1.0.0")
@@ -36,7 +30,6 @@
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRunner)
     androidTestImplementation(libs.testRules)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.espressoCore, excludes.espresso)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has it"s own MockMaker
diff --git a/lifecycle/lifecycle-extensions/build.gradle b/lifecycle/lifecycle-extensions/build.gradle
index 03cf955..6a602d2 100644
--- a/lifecycle/lifecycle-extensions/build.gradle
+++ b/lifecycle/lifecycle-extensions/build.gradle
@@ -52,7 +52,6 @@
     androidTestImplementation(libs.testRunner)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.espressoCore)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation("androidx.appcompat:appcompat:1.1.0")
     androidTestImplementation(project(":internal-testutils-runtime"))
 }
@@ -69,8 +68,5 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.lifecycle.extensions"
 }
diff --git a/mediarouter/mediarouter/build.gradle b/mediarouter/mediarouter/build.gradle
index 2eead2d..019340b1 100644
--- a/mediarouter/mediarouter/build.gradle
+++ b/mediarouter/mediarouter/build.gradle
@@ -51,7 +51,6 @@
     testImplementation(libs.truth)
     testImplementation(libs.robolectric)
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testRunner)
@@ -66,9 +65,6 @@
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.mediarouter"
 }
 
diff --git a/mediarouter/mediarouter/src/androidTest/AndroidManifest.xml b/mediarouter/mediarouter/src/androidTest/AndroidManifest.xml
index 9e185e220..92a343a 100644
--- a/mediarouter/mediarouter/src/androidTest/AndroidManifest.xml
+++ b/mediarouter/mediarouter/src/androidTest/AndroidManifest.xml
@@ -17,8 +17,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
     <application
-        android:supportsRtl="true"
-        android:name="androidx.multidex.MultiDexApplication">
+        android:supportsRtl="true">
         <activity
             android:name="androidx.mediarouter.app.MediaRouteChooserDialogTestActivity"
             android:label="MediaRouteChooserDialogTestActivity"
diff --git a/metrics/integration-tests/janktest/build.gradle b/metrics/integration-tests/janktest/build.gradle
index d394e7d..da13b35 100644
--- a/metrics/integration-tests/janktest/build.gradle
+++ b/metrics/integration-tests/janktest/build.gradle
@@ -25,9 +25,6 @@
         viewBinding true
     }
     namespace "androidx.metrics.performance.janktest"
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
 
 dependencies {
@@ -39,5 +36,4 @@
     implementation project(path: ':metrics:metrics-performance')
     implementation 'com.google.android.material:material:1.2.1'
     implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
-    implementation 'androidx.multidex:multidex:2.0.1'
 }
diff --git a/metrics/metrics-performance/build.gradle b/metrics/metrics-performance/build.gradle
index 8f48de9..5a7c352 100644
--- a/metrics/metrics-performance/build.gradle
+++ b/metrics/metrics-performance/build.gradle
@@ -53,13 +53,9 @@
     androidTestImplementation('androidx.core:core-ktx:1.3.2')
     androidTestImplementation('androidx.constraintlayout:constraintlayout:2.0.1')
     androidTestImplementation('com.google.android.material:material:1.2.1')
-    androidTestImplementation('androidx.multidex:multidex:2.0.1')
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.metrics.performance"
 }
 
diff --git a/metrics/metrics-performance/src/androidTest/AndroidManifest.xml b/metrics/metrics-performance/src/androidTest/AndroidManifest.xml
index 43a2b2e..ce37db9 100644
--- a/metrics/metrics-performance/src/androidTest/AndroidManifest.xml
+++ b/metrics/metrics-performance/src/androidTest/AndroidManifest.xml
@@ -17,8 +17,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
     <application android:supportsRtl="true"
-        android:theme="@style/Theme.Androidx"
-        android:name="androidx.multidex.MultiDexApplication">
+        android:theme="@style/Theme.Androidx">
         <activity android:name="androidx.metrics.performance.test.DelayedActivity"/>
     </application>
 </manifest>
diff --git a/navigation/integration-tests/testapp/build.gradle b/navigation/integration-tests/testapp/build.gradle
index f235d73..4398e0c 100644
--- a/navigation/integration-tests/testapp/build.gradle
+++ b/navigation/integration-tests/testapp/build.gradle
@@ -30,14 +30,10 @@
     implementation(project(":internal-testutils-navigation"), {
         exclude group: "androidx.navigation", module: "navigation-common"
     })
-    implementation(libs.multidex)
 }
 
 android {
     namespace "androidx.navigation.testapp"
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
 
 tasks["check"].dependsOn(tasks["connectedCheck"])
diff --git a/navigation/navigation-common/build.gradle b/navigation/navigation-common/build.gradle
index 5db71fc..3f71e16 100644
--- a/navigation/navigation-common/build.gradle
+++ b/navigation/navigation-common/build.gradle
@@ -34,9 +34,6 @@
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.navigation.common"
 }
 
@@ -71,7 +68,6 @@
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy)
     androidTestImplementation(libs.kotlinStdlib)
-    androidTestImplementation(libs.multidex)
 
     lintPublish(project(':navigation:navigation-common-lint'))
 }
diff --git a/navigation/navigation-dynamic-features-fragment/build.gradle b/navigation/navigation-dynamic-features-fragment/build.gradle
index 8b299e9..63a98a1 100644
--- a/navigation/navigation-dynamic-features-fragment/build.gradle
+++ b/navigation/navigation-dynamic-features-fragment/build.gradle
@@ -31,12 +31,6 @@
     alias(libs.plugins.kotlinSerialization)
 }
 
-android {
-    defaultConfig {
-        multiDexEnabled true
-    }
-}
-
 dependencies {
     api(project(":navigation:navigation-dynamic-features-runtime"))
     api(project(":navigation:navigation-fragment"))
@@ -59,16 +53,12 @@
     androidTestImplementation(libs.espressoCore)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":internal-testutils-runtime"), {
         exclude group: "androidx.fragment", module: "fragment"
     })
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.navigation.dynamicfeatures.fragment"
 }
 
diff --git a/navigation/navigation-dynamic-features-fragment/src/androidTest/AndroidManifest.xml b/navigation/navigation-dynamic-features-fragment/src/androidTest/AndroidManifest.xml
index 280e699..98b27dd 100644
--- a/navigation/navigation-dynamic-features-fragment/src/androidTest/AndroidManifest.xml
+++ b/navigation/navigation-dynamic-features-fragment/src/androidTest/AndroidManifest.xml
@@ -16,7 +16,7 @@
   -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <application android:name="androidx.multidex.MultiDexApplication">
+    <application>
         <activity android:name="androidx.navigation.dynamicfeatures.fragment.NavigationActivity" />
         <activity android:name="androidx.navigation.dynamicfeatures.fragment.TestActivity" />
     </application>
diff --git a/navigation/navigation-dynamic-features-runtime/build.gradle b/navigation/navigation-dynamic-features-runtime/build.gradle
index 019f1c12..e3f17e2 100644
--- a/navigation/navigation-dynamic-features-runtime/build.gradle
+++ b/navigation/navigation-dynamic-features-runtime/build.gradle
@@ -31,9 +31,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.navigation.dynamicfeatures"
 }
 
@@ -61,7 +58,6 @@
     androidTestImplementation(libs.espressoCore)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":internal-testutils-runtime"), {
         exclude group: "androidx.fragment", module: "fragment"
     })
diff --git a/navigation/navigation-fragment/build.gradle b/navigation/navigation-fragment/build.gradle
index 86716ba..7bf3df6 100644
--- a/navigation/navigation-fragment/build.gradle
+++ b/navigation/navigation-fragment/build.gradle
@@ -61,8 +61,5 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.navigation.fragment"
 }
diff --git a/navigation/navigation-runtime/build.gradle b/navigation/navigation-runtime/build.gradle
index d7155f8..91af7ba 100644
--- a/navigation/navigation-runtime/build.gradle
+++ b/navigation/navigation-runtime/build.gradle
@@ -55,15 +55,11 @@
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy)
     androidTestImplementation(libs.kotlinStdlib)
     androidTestImplementation(libs.kotlinTest)
-    androidTestImplementation(libs.multidex)
 
     lintPublish(project(':navigation:navigation-runtime-lint'))
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.navigation"
 }
 
diff --git a/navigation/navigation-runtime/src/androidTest/AndroidManifest.xml b/navigation/navigation-runtime/src/androidTest/AndroidManifest.xml
index 2beb477..f86b18b 100644
--- a/navigation/navigation-runtime/src/androidTest/AndroidManifest.xml
+++ b/navigation/navigation-runtime/src/androidTest/AndroidManifest.xml
@@ -17,8 +17,7 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <application
-        android:name="androidx.multidex.MultiDexApplication">
+    <application>
         <activity android:name="androidx.navigation.ActivityNavigatorActivity"/>
         <activity android:name="androidx.navigation.TargetActivity"/>
         <activity android:name="androidx.navigation.NavControllerActivity"/>
diff --git a/navigation/navigation-ui/build.gradle b/navigation/navigation-ui/build.gradle
index 0527db4..baa2420 100644
--- a/navigation/navigation-ui/build.gradle
+++ b/navigation/navigation-ui/build.gradle
@@ -33,9 +33,6 @@
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.navigation.ui"
 }
 
@@ -56,7 +53,6 @@
     androidTestImplementation(libs.testRunner)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
diff --git a/navigation/navigation-ui/src/androidTest/AndroidManifest.xml b/navigation/navigation-ui/src/androidTest/AndroidManifest.xml
deleted file mode 100644
index ae566f8..0000000
--- a/navigation/navigation-ui/src/androidTest/AndroidManifest.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright 2018 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
-    <application android:name="androidx.multidex.MultiDexApplication" />
-</manifest>
diff --git a/paging/integration-tests/testapp/build.gradle b/paging/integration-tests/testapp/build.gradle
index 147eecb..0988655 100644
--- a/paging/integration-tests/testapp/build.gradle
+++ b/paging/integration-tests/testapp/build.gradle
@@ -22,7 +22,6 @@
 }
 
 dependencies {
-    implementation(libs.multidex)
 
     implementation("androidx.arch.core:core-runtime:2.2.0")
     implementation(projectOrArtifact(":room:room-ktx"))
@@ -35,7 +34,6 @@
 
     ksp(projectOrArtifact(":room:room-compiler"))
 
-    implementation(libs.multidex)
     implementation(projectOrArtifact(":recyclerview:recyclerview"))
     implementation("androidx.fragment:fragment-ktx:1.3.0")
     implementation("androidx.appcompat:appcompat:1.1.0")
@@ -58,9 +56,6 @@
 
 android {
     namespace "androidx.paging.integration.testapp"
-    defaultConfig {
-        multiDexEnabled = true
-    }
 }
 
 // Enable parameter names to support Room incremental when its a project() dep.
diff --git a/paging/paging-common/build.gradle b/paging/paging-common/build.gradle
index 6f87e72..aa49e18 100644
--- a/paging/paging-common/build.gradle
+++ b/paging/paging-common/build.gradle
@@ -45,10 +45,6 @@
             it.compilationName = "instrumentedTest"
             it.defaultSourceSetName = "androidInstrumentedTest"
             it.sourceSetTreeName = "test"
-        }.configure {
-            it.multidex {
-                it.enable = true
-            }
         }
     }
 
@@ -108,7 +104,6 @@
             dependencies {
                 implementation(libs.testRunner)
                 implementation(libs.mockitoAndroid5)
-                implementation(libs.multidex)
             }
         }
 
diff --git a/paging/paging-runtime/build.gradle b/paging/paging-runtime/build.gradle
index 8c04412..3561986 100644
--- a/paging/paging-runtime/build.gradle
+++ b/paging/paging-runtime/build.gradle
@@ -30,9 +30,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.paging.runtime"
 }
 
@@ -62,7 +59,6 @@
     androidTestImplementation(libs.kotlinTest)
     androidTestImplementation(libs.kotlinCoroutinesTest)
     androidTestImplementation(libs.junit)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
diff --git a/paging/samples/build.gradle b/paging/samples/build.gradle
index b2ad700..f6bc2c0 100644
--- a/paging/samples/build.gradle
+++ b/paging/samples/build.gradle
@@ -31,9 +31,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.paging.samples"
 }
 
@@ -55,7 +52,6 @@
     implementation(project(":paging:paging-rxjava2"))
 
     implementation(libs.guavaAndroid)
-    implementation(libs.multidex)
     implementation(libs.retrofit)
 }
 
diff --git a/preference/preference-ktx/build.gradle b/preference/preference-ktx/build.gradle
index b76c3a6..88fdacf 100644
--- a/preference/preference-ktx/build.gradle
+++ b/preference/preference-ktx/build.gradle
@@ -45,7 +45,6 @@
     androidTestImplementation(libs.testRunner)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":internal-testutils-truth"))
 }
 
@@ -59,7 +58,4 @@
 
 android {
     namespace "androidx.preference.ktx"
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
diff --git a/preference/preference/build.gradle b/preference/preference/build.gradle
index 63c33b1..45783b6 100644
--- a/preference/preference/build.gradle
+++ b/preference/preference/build.gradle
@@ -42,7 +42,6 @@
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(libs.kotlinStdlib)
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
 }
 
 android {
@@ -55,7 +54,6 @@
 
     defaultConfig {
         vectorDrawables.useSupportLibrary = true
-        multiDexEnabled true
     }
 
     buildTypes.configureEach {
diff --git a/preference/preference/src/androidTest/AndroidManifest.xml b/preference/preference/src/androidTest/AndroidManifest.xml
index 467d865..2f59d34 100644
--- a/preference/preference/src/androidTest/AndroidManifest.xml
+++ b/preference/preference/src/androidTest/AndroidManifest.xml
@@ -15,8 +15,7 @@
   -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
-    <application
-        android:name="androidx.multidex.MultiDexApplication">
+    <application>
         <activity
             android:name="androidx.preference.tests.helpers.PreferenceTestHelperActivity"
             android:theme="@style/PreferenceTestTheme"/>
diff --git a/privacysandbox/ads/ads-adservices-java/build.gradle b/privacysandbox/ads/ads-adservices-java/build.gradle
index b2c2493..48788a7 100644
--- a/privacysandbox/ads/ads-adservices-java/build.gradle
+++ b/privacysandbox/ads/ads-adservices-java/build.gradle
@@ -46,7 +46,6 @@
     androidTestImplementation(libs.junit)
     androidTestImplementation(libs.kotlinTestJunit)
     androidTestImplementation(libs.mockitoKotlin4)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testRunner)
@@ -60,10 +59,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
-
     compileSdk = 34
     compileSdkExtension = 12
     namespace "androidx.privacysandbox.ads.adservices.java"
diff --git a/privacysandbox/ads/ads-adservices/build.gradle b/privacysandbox/ads/ads-adservices/build.gradle
index f633768..25d16ef 100644
--- a/privacysandbox/ads/ads-adservices/build.gradle
+++ b/privacysandbox/ads/ads-adservices/build.gradle
@@ -38,7 +38,6 @@
     androidTestImplementation(libs.junit)
     androidTestImplementation(libs.kotlinTestJunit)
     androidTestImplementation(libs.mockitoKotlin4)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testCore)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testRunner)
@@ -52,9 +51,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     buildTypes.all {
         consumerProguardFiles "proguard-rules.pro"
     }
diff --git a/privacysandbox/sdkruntime/sdkruntime-client/build.gradle b/privacysandbox/sdkruntime/sdkruntime-client/build.gradle
index 3435b825..af66549 100644
--- a/privacysandbox/sdkruntime/sdkruntime-client/build.gradle
+++ b/privacysandbox/sdkruntime/sdkruntime-client/build.gradle
@@ -117,7 +117,6 @@
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.junit)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(':internal-testutils-runtime'))
     androidTestImplementation(project(":internal-testutils-truth")) // for assertThrows
 
@@ -133,9 +132,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     sourceSets {
         androidTest {
             assets {
diff --git a/privacysandbox/ui/ui-client/build.gradle b/privacysandbox/ui/ui-client/build.gradle
index da5ff2f..932b569 100644
--- a/privacysandbox/ui/ui-client/build.gradle
+++ b/privacysandbox/ui/ui-client/build.gradle
@@ -51,7 +51,6 @@
     androidTestImplementation(libs.espressoIntents)
     androidTestImplementation(libs.espressoCore)
     androidTestImplementation(libs.mockitoCore)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testUiautomator)
     androidTestImplementation project(path: ':appcompat:appcompat')
     androidTestImplementation project(":privacysandbox:ui:ui-provider")
@@ -59,10 +58,6 @@
 
 android {
     namespace "androidx.privacysandbox.ui.client"
-    defaultConfig {
-        multiDexEnabled true
-        minSdk 21
-    }
 }
 
 androidx {
diff --git a/privacysandbox/ui/ui-client/src/androidTest/AndroidManifest.xml b/privacysandbox/ui/ui-client/src/androidTest/AndroidManifest.xml
index 15f02d9..869e25c 100644
--- a/privacysandbox/ui/ui-client/src/androidTest/AndroidManifest.xml
+++ b/privacysandbox/ui/ui-client/src/androidTest/AndroidManifest.xml
@@ -19,7 +19,6 @@
     <!-- This override is okay because the associated tests only run on T+ -->
     <uses-sdk tools:overrideLibrary="android_libs.ub_uiautomator, androidx.test.uiautomator" />
     <application android:supportsRtl="true"
-        android:name="androidx.multidex.MultiDexApplication"
         android:theme="@style/Theme.AppCompat">
     <activity
         android:name="androidx.privacysandbox.ui.client.test.UiLibActivity"
diff --git a/privacysandbox/ui/ui-tests/build.gradle b/privacysandbox/ui/ui-tests/build.gradle
index 7e9b08b..69746fb 100644
--- a/privacysandbox/ui/ui-tests/build.gradle
+++ b/privacysandbox/ui/ui-tests/build.gradle
@@ -47,16 +47,10 @@
     androidTestImplementation(libs.truth)
     androidTestImplementation project(path: ':appcompat:appcompat')
     androidTestImplementation project(':recyclerview:recyclerview')
-    def multidex_version = "2.0.1"
-    implementation "androidx.multidex:multidex:$multidex_version"
 }
 
 android {
     namespace "androidx.privacysandbox.ui.tests"
-    defaultConfig {
-        multiDexEnabled true
-        minSdk 21
-    }
 }
 
 androidx {
diff --git a/recyclerview/recyclerview/build.gradle b/recyclerview/recyclerview/build.gradle
index fda546c..c4d6592 100644
--- a/recyclerview/recyclerview/build.gradle
+++ b/recyclerview/recyclerview/build.gradle
@@ -31,11 +31,9 @@
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.junit)
     androidTestImplementation(libs.kotlinStdlib)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(project(":internal-testutils-espresso"))
     androidTestImplementation(project(":internal-testutils-runtime"))
     androidTestImplementation(project(":internal-testutils-common"))
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.kotlinCoroutinesAndroid)
 
     testImplementation(libs.junit)
@@ -57,9 +55,7 @@
     }
 
     defaultConfig {
-        multiDexEnabled = true
         testInstrumentationRunner "androidx.recyclerview.test.TestRunner"
-        multiDexEnabled true
     }
     namespace "androidx.recyclerview"
 }
diff --git a/recyclerview/recyclerview/src/androidTest/AndroidManifest.xml b/recyclerview/recyclerview/src/androidTest/AndroidManifest.xml
index a60d13a..1f805dc 100644
--- a/recyclerview/recyclerview/src/androidTest/AndroidManifest.xml
+++ b/recyclerview/recyclerview/src/androidTest/AndroidManifest.xml
@@ -16,7 +16,7 @@
   -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <application android:name="androidx.multidex.MultiDexApplication" android:supportsRtl="true">
+    <application android:supportsRtl="true">
         <activity android:name="androidx.recyclerview.test.RecyclerViewTestActivity"/>
         <activity android:name="androidx.recyclerview.widget.TestActivity"/>
         <activity android:name="androidx.recyclerview.widget.TestContentViewActivity"/>
diff --git a/room/integration-tests/kotlintestapp/build.gradle b/room/integration-tests/kotlintestapp/build.gradle
index d69e8cf..215c248 100644
--- a/room/integration-tests/kotlintestapp/build.gradle
+++ b/room/integration-tests/kotlintestapp/build.gradle
@@ -33,9 +33,6 @@
     buildFeatures {
         buildConfig = true
     }
-    defaultConfig {
-        multiDexEnabled true
-    }
 
     sourceSets {
         androidTestWithKapt.assets.srcDirs += files("$projectDir/schemas".toString())
@@ -66,7 +63,6 @@
     implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.1")
     implementation(libs.kotlinStdlib)
     implementation(libs.kotlinCoroutinesAndroid)
-    implementation(libs.multidex)
     kspAndroidTestWithKspGenJava(project(":room:room-compiler"))
     kspAndroidTestWithKspGenKotlin(project(":room:room-compiler"))
     kaptAndroidTestWithKapt(project(":room:room-compiler"))
diff --git a/room/integration-tests/testapp/build.gradle b/room/integration-tests/testapp/build.gradle
index d9455eb..5f38304 100644
--- a/room/integration-tests/testapp/build.gradle
+++ b/room/integration-tests/testapp/build.gradle
@@ -28,18 +28,9 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     buildFeatures {
         aidl = true
     }
-    buildTypes.configureEach {
-        // Need to make sure certain classes are put in primary dex as they're used early in
-        // process creation, and would fail to load on non-native-multidex API versions
-        multiDexKeepProguard file('multidex-rules.pro')
-    }
-
     sourceSets {
         androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
         androidTest.assets.srcDirs += files("$projectDir/databases".toString())
@@ -86,7 +77,6 @@
     implementation("androidx.arch.core:core-runtime:2.2.0")
     implementation("androidx.lifecycle:lifecycle-livedata:2.6.1")
     implementation("androidx.lifecycle:lifecycle-runtime:2.6.1")
-    implementation(libs.multidex)
 
     // Workaround for b/191286558.
     implementation(project(":annotation:annotation-experimental"))
@@ -117,12 +107,7 @@
     androidTestImplementation("androidx.lifecycle:lifecycle-runtime:2.6.1")
     androidTestImplementation("androidx.lifecycle:lifecycle-runtime-testing:2.6.1")
     androidTestImplementation("androidx.lifecycle:lifecycle-livedata:2.6.1")
-
-    // guavaAndroid is a implementation dependency instead of androidTestImplementation because
-    // if it's in the androidTest apk it causes the test APK to be multidex in ways that break
-    // non-native multidex (< API 21). This should be changed back to androidTestImplementation
-    // once this app is minApi 21
-    implementation(libs.guavaAndroid)
+    androidTestImplementation(libs.guava)
 
     // libs.findbugs dependency resolves an app/testapp version conflict.
     androidTestImplementation(libs.findbugs)
diff --git a/room/integration-tests/testapp/multidex-rules.pro b/room/integration-tests/testapp/multidex-rules.pro
deleted file mode 100644
index b05591c..0000000
--- a/room/integration-tests/testapp/multidex-rules.pro
+++ /dev/null
@@ -1 +0,0 @@
--keep class androidx.tracing.Trace
\ No newline at end of file
diff --git a/room/integration-tests/testapp/src/main/AndroidManifest.xml b/room/integration-tests/testapp/src/main/AndroidManifest.xml
index 78a08a5..ad2f8aa 100644
--- a/room/integration-tests/testapp/src/main/AndroidManifest.xml
+++ b/room/integration-tests/testapp/src/main/AndroidManifest.xml
@@ -17,7 +17,6 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools">
     <application
-        android:name="androidx.multidex.MultiDexApplication"
         android:allowBackup="true"
         android:supportsRtl="true">
         <service
diff --git a/room/room-paging/build.gradle b/room/room-paging/build.gradle
index 4242cb5..4dc6d6c 100644
--- a/room/room-paging/build.gradle
+++ b/room/room-paging/build.gradle
@@ -32,9 +32,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled true
-    }
     namespace "androidx.room.paging"
 }
 
@@ -46,7 +43,6 @@
     api("androidx.paging:paging-common:3.1.1")
 
     androidTestImplementation(libs.kotlinCoroutinesTest)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.kotlinTestJunit)
     androidTestImplementation(libs.junit)
     androidTestImplementation(libs.testExtJunit)
diff --git a/room/room-runtime/build.gradle b/room/room-runtime/build.gradle
index b22e8f3..cfcc74c 100644
--- a/room/room-runtime/build.gradle
+++ b/room/room-runtime/build.gradle
@@ -54,9 +54,6 @@
             root = 'src/androidMain'
         }
     }
-    defaultConfig {
-        multiDexEnabled true
-    }
     buildFeatures {
         aidl = true
     }
diff --git a/samples/MediaRoutingDemo/build.gradle b/samples/MediaRoutingDemo/build.gradle
index 108ce24..6da205a 100644
--- a/samples/MediaRoutingDemo/build.gradle
+++ b/samples/MediaRoutingDemo/build.gradle
@@ -18,7 +18,6 @@
     implementation(project(":swiperefreshlayout:swiperefreshlayout"))
 
     implementation(libs.material)
-    implementation(libs.multidex)
     implementation(libs.guava)
 }
 
@@ -31,7 +30,6 @@
     }
     defaultConfig {
         vectorDrawables.useSupportLibrary = true
-        multiDexEnabled true
     }
     lint {
         baseline = file("lint-baseline.xml")
diff --git a/samples/MediaRoutingDemo/src/main/AndroidManifest.xml b/samples/MediaRoutingDemo/src/main/AndroidManifest.xml
index a7eca17..aa26fb7 100644
--- a/samples/MediaRoutingDemo/src/main/AndroidManifest.xml
+++ b/samples/MediaRoutingDemo/src/main/AndroidManifest.xml
@@ -32,8 +32,7 @@
         android:icon="@drawable/app_sample_code"
         android:label="@string/media_router_app_name"
         android:supportsRtl="true"
-        android:theme="@style/Theme.SampleMediaRouter"
-        android:name="androidx.multidex.MultiDexApplication">
+        android:theme="@style/Theme.SampleMediaRouter">
 
         <activity
             android:name=".activities.MainActivity"
diff --git a/samples/Support4Demos/build.gradle b/samples/Support4Demos/build.gradle
index 8ae4eda..7f821c2 100644
--- a/samples/Support4Demos/build.gradle
+++ b/samples/Support4Demos/build.gradle
@@ -27,13 +27,8 @@
     implementation(project(":coordinatorlayout:coordinatorlayout"))
     implementation("com.google.android.material:material:1.6.0")
     implementation(project(":appcompat:appcompat"))
-    implementation(libs.multidex)
 }
 
 android {
     namespace "com.example.android.supportv4"
-
-    defaultConfig {
-        multiDexEnabled true
-    }
 }
diff --git a/slice/slice-benchmark/build.gradle b/slice/slice-benchmark/build.gradle
index 2cb25fe..09530b3 100644
--- a/slice/slice-benchmark/build.gradle
+++ b/slice/slice-benchmark/build.gradle
@@ -43,7 +43,6 @@
     androidTestImplementation(libs.espressoCore, excludes.espresso)
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
@@ -61,7 +60,4 @@
 
 android {
     namespace "androidx.slice.benchmark"
-    defaultConfig {
-        multiDexEnabled = true
-    }
 }
diff --git a/startup/startup-runtime/build.gradle b/startup/startup-runtime/build.gradle
index 74ef161..177105e 100644
--- a/startup/startup-runtime/build.gradle
+++ b/startup/startup-runtime/build.gradle
@@ -32,7 +32,6 @@
 android {
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
-        multiDexKeepProguard file("multidex-rules.pro")
     }
     namespace "androidx.startup"
 }
diff --git a/startup/startup-runtime/multidex-rules.pro b/startup/startup-runtime/multidex-rules.pro
deleted file mode 100644
index 2e69eed..0000000
--- a/startup/startup-runtime/multidex-rules.pro
+++ /dev/null
@@ -1,2 +0,0 @@
--keep class androidx.startup.AppInitializer
--keep class * extends androidx.startup.Initializer
diff --git a/swiperefreshlayout/swiperefreshlayout/build.gradle b/swiperefreshlayout/swiperefreshlayout/build.gradle
index 5789f93..d79f78c 100644
--- a/swiperefreshlayout/swiperefreshlayout/build.gradle
+++ b/swiperefreshlayout/swiperefreshlayout/build.gradle
@@ -33,7 +33,6 @@
     androidTestImplementation(project(":recyclerview:recyclerview"), {
         exclude group: "androidx.swiperefreshlayout", module: "swiperefreshlayout"
     })
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
@@ -45,8 +44,5 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.swiperefreshlayout"
 }
diff --git a/transition/transition/build.gradle b/transition/transition/build.gradle
index bac866b..e9de30e 100644
--- a/transition/transition/build.gradle
+++ b/transition/transition/build.gradle
@@ -36,7 +36,6 @@
     androidTestImplementation(project(":internal-testutils-runtime"), {
         exclude group: "androidx.fragment", module: "fragment"
     })
-    androidTestImplementation(libs.multidex)
 }
 
 android {
@@ -46,9 +45,6 @@
     aaptOptions {
         additionalParameters "--no-version-transitions"
     }
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.transition"
 }
 
diff --git a/viewpager2/viewpager2/build.gradle b/viewpager2/viewpager2/build.gradle
index 101a186..56499ac 100644
--- a/viewpager2/viewpager2/build.gradle
+++ b/viewpager2/viewpager2/build.gradle
@@ -37,7 +37,6 @@
     api("androidx.recyclerview:recyclerview:1.3.1")
     implementation("androidx.collection:collection:1.1.0")
 
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.testUiautomator)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
@@ -69,7 +68,4 @@
 
 android {
     namespace "androidx.viewpager2"
-    defaultConfig {
-        multiDexEnabled = true
-    }
 }
diff --git a/viewpager2/viewpager2/src/androidTest/AndroidManifest.xml b/viewpager2/viewpager2/src/androidTest/AndroidManifest.xml
index 70a62cfe..9183dc0 100755
--- a/viewpager2/viewpager2/src/androidTest/AndroidManifest.xml
+++ b/viewpager2/viewpager2/src/androidTest/AndroidManifest.xml
@@ -18,9 +18,7 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <uses-sdk tools:overrideLibrary="android_libs.ub_uiautomator, androidx.test.uiautomator" />
-    <application
-        android:name="androidx.multidex.MultiDexApplication"
-        android:supportsRtl="true">
+    <application android:supportsRtl="true">
         <activity android:name="androidx.viewpager2.widget.swipe.TestActivity"
                   android:theme="@style/Theme.AppCompat"/>
     </application>
diff --git a/webkit/integration-tests/instrumentation/build.gradle b/webkit/integration-tests/instrumentation/build.gradle
index db5d7d4..1a7a216 100644
--- a/webkit/integration-tests/instrumentation/build.gradle
+++ b/webkit/integration-tests/instrumentation/build.gradle
@@ -15,9 +15,6 @@
 android {
     namespace 'androidx.webkit.instrumentation'
 
-    defaultConfig {
-        multiDexEnabled = true
-    }
     flavorDimensions = ["targetSdk"]
 
     productFlavors {
@@ -43,7 +40,6 @@
     androidTestImplementation("androidx.concurrent:concurrent-futures:1.0.0")
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy)
-    androidTestImplementation(libs.multidex)
 
     // Hamcrest matchers:
     androidTestImplementation(libs.bundles.espressoContrib, excludes.espresso)
diff --git a/webkit/webkit/build.gradle b/webkit/webkit/build.gradle
index c9ca7ad..bf612b6 100644
--- a/webkit/webkit/build.gradle
+++ b/webkit/webkit/build.gradle
@@ -43,7 +43,6 @@
     androidTestImplementation("androidx.concurrent:concurrent-futures:1.0.0")
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy)
-    androidTestImplementation(libs.multidex)
 
     // Hamcrest matchers:
     androidTestImplementation(libs.bundles.espressoContrib, excludes.espresso)
@@ -63,9 +62,6 @@
         // Allow compiling the WebView support library boundary interfaces from this project.
         main.java.srcDirs += new File(webviewBoundaryInterfacesDir, "src").getCanonicalPath()
     }
-    defaultConfig {
-        multiDexEnabled = true
-    }
     buildTypes.configureEach {
         consumerProguardFiles(
                 new File(webviewBoundaryInterfacesDir, "proguard.flags"),
diff --git a/window/window-rxjava2/build.gradle b/window/window-rxjava2/build.gradle
index dd849e3..d2738a8 100644
--- a/window/window-rxjava2/build.gradle
+++ b/window/window-rxjava2/build.gradle
@@ -31,9 +31,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.window.rxjava2"
 }
 
@@ -52,7 +49,6 @@
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.mockitoKotlin, excludes.bytebuddy)
     androidTestImplementation(libs.kotlinCoroutinesTest)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
diff --git a/window/window-rxjava3/build.gradle b/window/window-rxjava3/build.gradle
index 8e24e21..acbc9de 100644
--- a/window/window-rxjava3/build.gradle
+++ b/window/window-rxjava3/build.gradle
@@ -31,9 +31,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.window.rxjava3"
 }
 
@@ -52,7 +49,6 @@
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.mockitoKotlin, excludes.bytebuddy)
     androidTestImplementation(libs.kotlinCoroutinesTest)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
diff --git a/window/window-testing/build.gradle b/window/window-testing/build.gradle
index 0e5fe4b..328cd60 100644
--- a/window/window-testing/build.gradle
+++ b/window/window-testing/build.gradle
@@ -31,9 +31,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     namespace "androidx.window.testing"
 }
 
@@ -49,7 +46,6 @@
     androidTestImplementation(libs.testRunner)
     androidTestImplementation(libs.testRules)
     androidTestImplementation(libs.kotlinCoroutinesTest)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.truth)
 
     testImplementation(libs.robolectric)
diff --git a/window/window/build.gradle b/window/window/build.gradle
index 076e5af..d65067d 100644
--- a/window/window/build.gradle
+++ b/window/window/build.gradle
@@ -31,9 +31,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
@@ -93,7 +90,6 @@
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.mockitoKotlin, excludes.bytebuddy)
     androidTestImplementation(libs.kotlinCoroutinesTest)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.junit) // Needed for Assert.assertThrows
     androidTestImplementation(extensions_core_version)
diff --git a/work/work-multiprocess/build.gradle b/work/work-multiprocess/build.gradle
index 4bbfa45..733379d 100644
--- a/work/work-multiprocess/build.gradle
+++ b/work/work-multiprocess/build.gradle
@@ -30,9 +30,6 @@
 }
 
 android {
-    defaultConfig {
-        multiDexEnabled = true
-    }
     buildTypes.configureEach {
         consumerProguardFiles "proguard-rules.pro"
     }
@@ -54,7 +51,6 @@
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has its own MockMaker
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has its own MockMaker
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
 }
 
 androidx {
diff --git a/work/work-multiprocess/src/androidTest/AndroidManifest.xml b/work/work-multiprocess/src/androidTest/AndroidManifest.xml
index e8e40b8..65e7ba6 100644
--- a/work/work-multiprocess/src/androidTest/AndroidManifest.xml
+++ b/work/work-multiprocess/src/androidTest/AndroidManifest.xml
@@ -15,7 +15,7 @@
   -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <application android:name="androidx.multidex.MultiDexApplication">
+    <application>
         <service android:name="androidx.work.multiprocess.RemoteWorkerService" />
 
         <service
diff --git a/work/work-runtime/build.gradle b/work/work-runtime/build.gradle
index 12a267e..1545264 100644
--- a/work/work-runtime/build.gradle
+++ b/work/work-runtime/build.gradle
@@ -45,7 +45,6 @@
         }
     }
     defaultConfig {
-        multiDexEnabled = true
         javaCompileOptions {
             annotationProcessorOptions {
                 arguments = [
@@ -76,7 +75,6 @@
     api(libs.kotlinStdlib)
     api(libs.kotlinCoroutinesAndroid)
     androidTestImplementation(libs.kotlinCoroutinesTest)
-    androidTestImplementation(libs.multidex)
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.testExtJunit)
     androidTestImplementation(libs.testCore)
diff --git a/work/work-runtime/src/androidTest/AndroidManifest.xml b/work/work-runtime/src/androidTest/AndroidManifest.xml
index 95dec8b..8b15e47 100644
--- a/work/work-runtime/src/androidTest/AndroidManifest.xml
+++ b/work/work-runtime/src/androidTest/AndroidManifest.xml
@@ -26,7 +26,7 @@
         android:maxSdkVersion="32"/>
     <uses-permission android:name="android.permission.USE_EXACT_ALARM"/>
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
-    <application android:name="androidx.multidex.MultiDexApplication">
+    <application>
         <service android:name="androidx.work.impl.foreground.SystemForegroundService"
             android:foregroundServiceType="specialUse" />
         <service
diff --git a/work/work-testing/build.gradle b/work/work-testing/build.gradle
index 98400b8..32597de 100644
--- a/work/work-testing/build.gradle
+++ b/work/work-testing/build.gradle
@@ -44,7 +44,6 @@
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(libs.truth)
-    androidTestImplementation(libs.multidex)
 
     testImplementation(libs.truth)
     testImplementation(libs.testCore)
@@ -65,7 +64,4 @@
 
 android {
     namespace "androidx.work.testing"
-    defaultConfig {
-        multiDexEnabled = true
-    }
 }
