From eee4ab12fad3ac6d2663ab5b6f3537eab54448e9 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 27 Mar 2024 11:54:10 -0700 Subject: [PATCH] Disable use_resource_processor when producing a shared library Passing --shared-lib to aapt2 causes it to add an extra onResourcesLoaded method that rewrites resources IDs to include the package ID determined at runtime. ResourceProcessorBusyBox has no equivalent functionality, so disable whenever --shared-lib is found in aaptflags for now. Fixes: 330646473 Bug: 331641946 Test: manual Change-Id: Ibb0c2c7bf7a41ab294f5c84b4b6018cc8a63b0f4 --- java/aar.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/aar.go b/java/aar.go index 1734da945..1c03594be 100644 --- a/java/aar.go +++ b/java/aar.go @@ -164,7 +164,9 @@ func propagateRROEnforcementMutator(ctx android.TopDownMutatorContext) { } func (a *aapt) useResourceProcessorBusyBox(ctx android.BaseModuleContext) bool { - return BoolDefault(a.aaptProperties.Use_resource_processor, ctx.Config().UseResourceProcessorByDefault()) + return BoolDefault(a.aaptProperties.Use_resource_processor, ctx.Config().UseResourceProcessorByDefault()) && + // TODO(b/331641946): remove this when ResourceProcessorBusyBox supports generating shared libraries. + !slices.Contains(a.aaptProperties.Aaptflags, "--shared-lib") } func (a *aapt) filterProduct() string {