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
This commit is contained in:
@@ -383,6 +383,10 @@ func TransformJarsToJar(ctx android.ModuleContext, outputFile android.WritablePa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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 {
|
if stripDirs {
|
||||||
jarArgs = append(jarArgs, "-D")
|
jarArgs = append(jarArgs, "-D")
|
||||||
}
|
}
|
||||||
|
@@ -781,6 +781,9 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path
|
|||||||
|
|
||||||
if len(jars) == 1 && !manifest.Valid() {
|
if len(jars) == 1 && !manifest.Valid() {
|
||||||
// Optimization: skip the combine step if there is nothing to do
|
// 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]
|
outputFile = jars[0]
|
||||||
} else {
|
} else {
|
||||||
combinedJar := android.PathForModuleOut(ctx, "combined", jarName)
|
combinedJar := android.PathForModuleOut(ctx, "combined", jarName)
|
||||||
|
Reference in New Issue
Block a user