diff --git a/apex/apex.go b/apex/apex.go
index 28935f2..629cbbf 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -613,7 +613,6 @@
 
 	testApex bool
 	vndkApex bool
-	artApex  bool
 
 	// intermediate path for apex_manifest.json
 	manifestOut android.WritablePath
@@ -1214,19 +1213,6 @@
 		return false
 	})
 
-	// Specific to the ART apex: dexpreopt artifacts for libcore Java libraries.
-	// Build rules are generated by the dexpreopt singleton, and here we access build artifacts
-	// via the global boot image config.
-	if a.artApex {
-		for arch, files := range java.DexpreoptedArtApexJars(ctx) {
-			dirInApex := filepath.Join("dexpreopt", arch.String())
-			for _, f := range files {
-				localModule := "dexpreopt_" + arch.String() + "_" + filepath.Base(f.String())
-				filesInfo = append(filesInfo, apexFile{f, localModule, dirInApex, etc, nil, nil})
-			}
-		}
-	}
-
 	if a.private_key_file == nil {
 		ctx.PropertyErrorf("key", "private_key for %q could not be found", String(a.properties.Key))
 		return
@@ -1825,10 +1811,9 @@
 	return module
 }
 
-func ApexBundleFactory(testApex bool, artApex bool) android.Module {
+func ApexBundleFactory(testApex bool) android.Module {
 	bundle := newApexBundle()
 	bundle.testApex = testApex
-	bundle.artApex = artApex
 	return bundle
 }
 
