diff --git a/java/android_manifest.go b/java/android_manifest.go
index 021883e..dc7a3fc 100644
--- a/java/android_manifest.go
+++ b/java/android_manifest.go
@@ -93,13 +93,11 @@
 
 	var deps android.Paths
 	targetSdkVersion := sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion())
-	if targetSdkVersion == ctx.Config().PlatformSdkCodename() &&
-		ctx.Config().UnbundledBuild() &&
-		!ctx.Config().UnbundledBuildUsePrebuiltSdks() &&
-		ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") {
-		apiFingerprint := ApiFingerprintPath(ctx)
-		targetSdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String())
-		deps = append(deps, apiFingerprint)
+	minSdkVersion := sdkVersionOrDefault(ctx, sdkContext.minSdkVersion())
+	if (UseApiFingerprint(ctx, sdkContext.targetSdkVersion()) ||
+		UseApiFingerprint(ctx, sdkContext.minSdkVersion())) {
+			apiFingerprint := ApiFingerprintPath(ctx)
+			deps = append(deps, apiFingerprint)
 	}
 
 	fixedManifest := android.PathForModuleOut(ctx, "manifest_fixer", "AndroidManifest.xml")
@@ -110,7 +108,7 @@
 		Implicits:   deps,
 		Output:      fixedManifest,
 		Args: map[string]string{
-			"minSdkVersion":    sdkVersionOrDefault(ctx, sdkContext.minSdkVersion()),
+			"minSdkVersion":    minSdkVersion,
 			"targetSdkVersion": targetSdkVersion,
 			"args":             strings.Join(args, " "),
 		},
diff --git a/java/sdk.go b/java/sdk.go
index 66eb284..73b7dcf 100644
--- a/java/sdk.go
+++ b/java/sdk.go
@@ -47,13 +47,29 @@
 	targetSdkVersion() string
 }
 
+func UseApiFingerprint(ctx android.BaseModuleContext, v string) bool {
+	if v == ctx.Config().PlatformSdkCodename() &&
+		ctx.Config().UnbundledBuild() &&
+		!ctx.Config().UnbundledBuildUsePrebuiltSdks() &&
+		ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") {
+		return true
+	}
+	return false
+}
+
 func sdkVersionOrDefault(ctx android.BaseModuleContext, v string) string {
+	var sdkVersion string
 	switch v {
 	case "", "none", "current", "test_current", "system_current", "core_current", "core_platform":
-		return ctx.Config().DefaultAppTargetSdk()
+		sdkVersion = ctx.Config().DefaultAppTargetSdk()
 	default:
-		return v
+		sdkVersion = v
 	}
+	if UseApiFingerprint(ctx, sdkVersion) {
+		apiFingerprint := ApiFingerprintPath(ctx)
+		sdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String())
+	}
+	return sdkVersion
 }
 
 // Returns a sdk version as a number.  For modules targeting an unreleased SDK (meaning it does not yet have a number)
