fix: required property doesn't track deps to java, apex, ...

This change fixes a bug that the required property doesn't track
dependencies to modules whose arch is common.

Bug: 321000103
Bug: 321626681
Test: go test ./...
Change-Id: I3d2b3ad8cb2a9f1c5c3d5345bf05402a787f011a
diff --git a/android/module.go b/android/module.go
index f908451..89c4ddd 100644
--- a/android/module.go
+++ b/android/module.go
@@ -1074,14 +1074,22 @@
 		}
 	}
 
+	var deviceTargets []Target
+	deviceTargets = append(deviceTargets, ctx.Config().Targets[Android]...)
+	deviceTargets = append(deviceTargets, ctx.Config().AndroidCommonTarget)
+
+	var hostTargets []Target
+	hostTargets = append(hostTargets, ctx.Config().Targets[ctx.Config().BuildOS]...)
+	hostTargets = append(hostTargets, ctx.Config().BuildOSCommonTarget)
+
 	if m.Device() {
 		for _, depName := range m.RequiredModuleNames() {
-			for _, target := range ctx.Config().Targets[Android] {
+			for _, target := range deviceTargets {
 				addDep(target, depName)
 			}
 		}
 		for _, depName := range m.HostRequiredModuleNames() {
-			for _, target := range ctx.Config().Targets[ctx.Config().BuildOS] {
+			for _, target := range hostTargets {
 				addDep(target, depName)
 			}
 		}
@@ -1089,7 +1097,7 @@
 
 	if m.Host() {
 		for _, depName := range m.RequiredModuleNames() {
-			for _, target := range ctx.Config().Targets[ctx.Config().BuildOS] {
+			for _, target := range hostTargets {
 				// When a host module requires another host module, don't make a
 				// dependency if they have different OSes (i.e. hostcross).
 				if m.Target().HostCross != target.HostCross {
@@ -1099,7 +1107,7 @@
 			}
 		}
 		for _, depName := range m.TargetRequiredModuleNames() {
-			for _, target := range ctx.Config().Targets[Android] {
+			for _, target := range deviceTargets {
 				addDep(target, depName)
 			}
 		}