diff --git a/java/app.go b/java/app.go index 234dcb754..05cd8b31d 100644 --- a/java/app.go +++ b/java/app.go @@ -412,7 +412,11 @@ func (overlaySingleton) GenerateBuildActions(ctx android.SingletonContext) { } var overlayData []overlayGlobResult - for _, overlay := range ctx.Config().ResourceOverlays() { + overlayDirs := ctx.Config().ResourceOverlays() + for i := range overlayDirs { + // Iterate backwards through the list of overlay directories so that the later, lower-priority + // directories in the list show up earlier in the command line to aapt2. + overlay := overlayDirs[len(overlayDirs)-1-i] var result overlayGlobResult result.dir = overlay diff --git a/java/app_test.go b/java/app_test.go index 73ac3f78e..d3216bfd2 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -111,13 +111,13 @@ var testEnforceRROTests = []struct { enforceRROTargets: nil, enforceRROExcludedOverlays: nil, fooOverlayFiles: []string{ - "device/vendor/blah/overlay/foo/res/values/strings.xml", "device/vendor/blah/static_overlay/foo/res/values/strings.xml", + "device/vendor/blah/overlay/foo/res/values/strings.xml", }, fooRRODirs: nil, barOverlayFiles: []string{ - "device/vendor/blah/overlay/bar/res/values/strings.xml", "device/vendor/blah/static_overlay/bar/res/values/strings.xml", + "device/vendor/blah/overlay/bar/res/values/strings.xml", }, barRRODirs: nil, }, @@ -132,8 +132,8 @@ var testEnforceRROTests = []struct { "device/vendor/blah/overlay/foo/res", }, barOverlayFiles: []string{ - "device/vendor/blah/overlay/bar/res/values/strings.xml", "device/vendor/blah/static_overlay/bar/res/values/strings.xml", + "device/vendor/blah/overlay/bar/res/values/strings.xml", }, barRRODirs: nil, },