diff --git a/java/dex.go b/java/dex.go index df501bffa..cd13e3909 100644 --- a/java/dex.go +++ b/java/dex.go @@ -217,8 +217,9 @@ func (d *dexer) dexCommonFlags(ctx android.ModuleContext, // Note: Targets with a min SDK kind of core_platform (e.g., framework.jar) or unspecified (e.g., // services.jar), are not classified as stable, which is WAI. // TODO(b/232073181): Expand to additional min SDK cases after validation. + var addAndroidPlatformBuildFlag = false if !dexParams.sdkVersion.Stable() { - flags = append(flags, "--android-platform-build") + addAndroidPlatformBuildFlag = true } effectiveVersion, err := dexParams.minSdkVersion.EffectiveVersion(ctx) @@ -226,7 +227,18 @@ func (d *dexer) dexCommonFlags(ctx android.ModuleContext, ctx.PropertyErrorf("min_sdk_version", "%s", err) } - flags = append(flags, "--min-api "+strconv.Itoa(effectiveVersion.FinalOrFutureInt())) + // If the specified SDK level is 10000, then configure the compiler to use the + // current platform SDK level and to compile the build as a platform build. + var minApiFlagValue = effectiveVersion.FinalOrFutureInt() + if minApiFlagValue == 10000 { + minApiFlagValue = ctx.Config().PlatformSdkVersion().FinalInt() + addAndroidPlatformBuildFlag = true + } + flags = append(flags, "--min-api "+strconv.Itoa(minApiFlagValue)) + + if addAndroidPlatformBuildFlag { + flags = append(flags, "--android-platform-build") + } return flags, deps }