diff --git a/apex/apex_test.go b/apex/apex_test.go index 87d551b74..bdff41e6d 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -4316,6 +4316,14 @@ func TestPrebuilt(t *testing.T) { } } +func TestPrebuiltMissingSrc(t *testing.T) { + testApexError(t, `module "myapex" variant "android_common".*: prebuilt_apex does not support "arm64_armv8-a"`, ` + prebuilt_apex { + name: "myapex", + } + `) +} + func TestPrebuiltFilenameOverride(t *testing.T) { ctx := testApex(t, ` prebuilt_apex { diff --git a/apex/prebuilt.go b/apex/prebuilt.go index 68f285936..8c7e64c6a 100644 --- a/apex/prebuilt.go +++ b/apex/prebuilt.go @@ -152,14 +152,17 @@ func (p *ApexFileProperties) prebuiltApexSelector(ctx android.BaseModuleContext, src = String(p.Arch.X86.Src) case android.X86_64: src = String(p.Arch.X86_64.Src) - default: - ctx.OtherModuleErrorf(prebuilt, "prebuilt_apex does not support %q", multiTargets[0].Arch.String()) - return nil } if src == "" { src = String(p.Src) } + if src == "" { + ctx.OtherModuleErrorf(prebuilt, "prebuilt_apex does not support %q", multiTargets[0].Arch.String()) + // Drop through to return an empty string as the src (instead of nil) to avoid the prebuilt + // logic from reporting a more general, less useful message. + } + return []string{src} }