Skip private resource validation if there are no visibility dependencies If there are no visibility dependencies, the private resource validation can be skipped entirely. This avoids extract resources references from the manifest and the primary compiled resources. PiperOrigin-RevId: 981222208 Change-Id: I72205afc94d679d1fd314bef1523f3efeb9a74b6
diff --git a/src/tools/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java b/src/tools/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java index 3d4c4e6..fde9a60 100644 --- a/src/tools/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java +++ b/src/tools/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java
@@ -424,23 +424,24 @@ .link(compiled); profiler.recordEndOf("link").startTask("validate"); - ImmutableList<Reference> manifestReferences; - if (packagedResources.proto() != null) { - manifestReferences = - XmlUtils.getAllResourceReferences( - ProtoApk.readFrom(packagedResources.proto()).getManifest()); - } else { - manifestReferences = XmlUtils.getAllResourceReferences(compiled.getManifest()); - } - ImmutableList<CompiledResources> visibilityDeps = options.compiledDepsWithPublicXml != null ? options.compiledDepsWithPublicXml.stream() .map(CompiledResources::from) .collect(toImmutableList()) : ImmutableList.copyOf(compiledResourceDeps); - ValidateAndLinkResourcesAction.checkVisibilityOfResourceReferences( - manifestReferences, compiled, visibilityDeps); + if (!visibilityDeps.isEmpty()) { + ImmutableList<Reference> manifestReferences; + if (packagedResources.proto() != null) { + manifestReferences = + XmlUtils.getAllResourceReferences( + ProtoApk.readFrom(packagedResources.proto()).getManifest()); + } else { + manifestReferences = XmlUtils.getAllResourceReferences(compiled.getManifest()); + } + ValidateAndLinkResourcesAction.checkVisibilityOfResourceReferences( + manifestReferences, compiled, visibilityDeps); + } profiler.recordEndOf("validate");