Merge "Clearer error if no Android.bp is found"
diff --git a/android/config.go b/android/config.go
index 0eebb5f..f806b49 100644
--- a/android/config.go
+++ b/android/config.go
@@ -295,7 +295,10 @@
 func (c *config) fromEnv() error {
 	switch c.Getenv("EXPERIMENTAL_USE_OPENJDK9") {
 	case "":
-		// Use OpenJDK8
+		if c.Getenv("RUN_ERROR_PRONE") != "true" {
+			// Use OpenJDK9, but target 1.8
+			c.useOpenJDK9 = true
+		}
 	case "false":
 		// Use OpenJDK8
 	case "1.8":
@@ -306,7 +309,7 @@
 		c.useOpenJDK9 = true
 		c.targetOpenJDK9 = true
 	default:
-		return fmt.Errorf(`Invalid value for EXPERIMENTAL_USE_OPENJDK9, should be "", "1.8", or "true"`)
+		return fmt.Errorf(`Invalid value for EXPERIMENTAL_USE_OPENJDK9, should be "", "false", "1.8", or "true"`)
 	}
 
 	return nil
diff --git a/java/config/makevars.go b/java/config/makevars.go
index b9009f3..dc9a91b 100644
--- a/java/config/makevars.go
+++ b/java/config/makevars.go
@@ -36,6 +36,8 @@
 	}
 
 	ctx.Strict("ANDROID_JAVA_HOME", "${JavaHome}")
+	ctx.Strict("ANDROID_JAVA8_HOME", "prebuilts/jdk/jdk8/${hostPrebuiltTag}")
+	ctx.Strict("ANDROID_JAVA9_HOME", "prebuilts/jdk/jdk9/${hostPrebuiltTag}")
 	ctx.Strict("ANDROID_JAVA_TOOLCHAIN", "${JavaToolchain}")
 	ctx.Strict("JAVA", "${JavaCmd}")
 	ctx.Strict("JAVAC", "${JavacCmd}")
diff --git a/ui/build/config.go b/ui/build/config.go
index df97d80..b608d38 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -150,7 +150,16 @@
 		if override, ok := ret.environ.Get("OVERRIDE_ANDROID_JAVA_HOME"); ok {
 			return override
 		}
-		if v, ok := ret.environ.Get("EXPERIMENTAL_USE_OPENJDK9"); ok && v != "" && v != "false" {
+		v, ok := ret.environ.Get("EXPERIMENTAL_USE_OPENJDK9")
+		if !ok {
+			v2, ok2 := ret.environ.Get("RUN_ERROR_PRONE")
+			if ok2 && (v2 == "true") {
+				v = "false"
+			} else {
+				v = "1.8"
+			}
+		}
+		if v != "false" {
 			return filepath.Join("prebuilts/jdk/jdk9", ret.HostPrebuiltTag())
 		}
 		return filepath.Join("prebuilts/jdk/jdk8", ret.HostPrebuiltTag())