diff --git a/java/droiddoc.go b/java/droiddoc.go index 2173dae30..8a291adce 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -304,6 +304,9 @@ func (j *Javadoc) aidlFlags(ctx android.ModuleContext, aidlPreprocess android.Op flags = append(flags, "-I"+src.String()) } + minSdkVersion := j.MinSdkVersion(ctx).ApiLevel.FinalOrFutureInt() + flags = append(flags, fmt.Sprintf("--min_sdk_version=%v", minSdkVersion)) + return strings.Join(flags, " "), deps } diff --git a/java/java_test.go b/java/java_test.go index f06b520d5..ee83ee2f4 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -1370,6 +1370,39 @@ func TestAidlFlagsWithMinSdkVersion(t *testing.T) { } } +func TestAidlFlagsMinSdkVersionDroidstubs(t *testing.T) { + bpTemplate := ` + droidstubs { + name: "foo-stubs", + srcs: ["foo.aidl"], + %s + system_modules: "none", + } + ` + testCases := []struct { + desc string + sdkVersionBp string + minSdkVersionExpected string + }{ + { + desc: "sdk_version not set, module compiles against private platform APIs", + sdkVersionBp: ``, + minSdkVersionExpected: "10000", + }, + { + desc: "sdk_version set to none, module does not build against an SDK", + sdkVersionBp: `sdk_version: "none",`, + minSdkVersionExpected: "10000", + }, + } + for _, tc := range testCases { + ctx := prepareForJavaTest.RunTestWithBp(t, fmt.Sprintf(bpTemplate, tc.sdkVersionBp)) + aidlCmd := ctx.ModuleForTests("foo-stubs", "android_common").Rule("aidl").RuleParams.Command + expected := "--min_sdk_version=" + tc.minSdkVersionExpected + android.AssertStringDoesContain(t, "aidl command conatins incorrect min_sdk_version for testCse: "+tc.desc, aidlCmd, expected) + } +} + func TestAidlEnforcePermissions(t *testing.T) { ctx, _ := testJava(t, ` java_library {