Strip module-info.class files when combining jars

Combining static jars from dependencies may bring in module-info.class
files, which don't make sense once multiple modules have been combined,
and sometimes confuse downstream tools like desugar.  Strip them out
like make does when combining jars.

Test: m checkbuild
Change-Id: I560c5acfcc6e1be9adf604c22cf200581f92f702
diff --git a/java/builder.go b/java/builder.go
index dd0d927..56c7b33 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -383,6 +383,10 @@
 		}
 	}
 
+	// Remove any module-info.class files that may have come from prebuilt jars, they cause problems
+	// for downstream tools like desugar.
+	jarArgs = append(jarArgs, "-stripFile module-info.class")
+
 	if stripDirs {
 		jarArgs = append(jarArgs, "-D")
 	}
diff --git a/java/java.go b/java/java.go
index 302bf78..dbf202a 100644
--- a/java/java.go
+++ b/java/java.go
@@ -781,6 +781,9 @@
 
 	if len(jars) == 1 && !manifest.Valid() {
 		// Optimization: skip the combine step if there is nothing to do
+		// TODO(ccross): this leaves any module-info.class files, but those should only come from
+		// prebuilt dependencies until we support modules in the platform build, so there shouldn't be
+		// any if len(jars) == 1.
 		outputFile = jars[0]
 	} else {
 		combinedJar := android.PathForModuleOut(ctx, "combined", jarName)