Use correct variant for annotation processors.

Annotation processors should always have a common host variant, rather
than a device variant as the build was looking for before.

Bug: 110868826
Test: m
Change-Id: I2b7d0e7ed1af3f2f9ddb87d2bf36920737a507e9
diff --git a/android/config.go b/android/config.go
index 8330b3d..3a9b98b 100644
--- a/android/config.go
+++ b/android/config.go
@@ -90,8 +90,9 @@
 	ConfigFileName           string
 	ProductVariablesFileName string
 
-	Targets        map[OsClass][]Target
-	BuildOsVariant string
+	Targets              map[OsClass][]Target
+	BuildOsVariant       string
+	BuildOsCommonVariant string
 
 	deviceConfig *deviceConfig
 
@@ -310,6 +311,7 @@
 
 	config.Targets = targets
 	config.BuildOsVariant = targets[Host][0].String()
+	config.BuildOsCommonVariant = getCommonTargets(targets[Host])[0].String()
 
 	if err := config.fromEnv(); err != nil {
 		return Config{}, err
diff --git a/java/java.go b/java/java.go
index 5458ea1..e87a990 100644
--- a/java/java.go
+++ b/java/java.go
@@ -522,8 +522,9 @@
 
 	ctx.AddDependency(ctx.Module(), libTag, j.properties.Libs...)
 	ctx.AddDependency(ctx.Module(), staticLibTag, j.properties.Static_libs...)
-	ctx.AddDependency(ctx.Module(), annoTag, j.properties.Annotation_processors...)
-
+	ctx.AddFarVariationDependencies([]blueprint.Variation{
+		{"arch", ctx.Config().BuildOsCommonVariant},
+	}, annoTag, j.properties.Annotation_processors...)
 	android.ExtractSourcesDeps(ctx, j.properties.Srcs)
 	android.ExtractSourcesDeps(ctx, j.properties.Exclude_srcs)
 	android.ExtractSourcesDeps(ctx, j.properties.Java_resources)