diff --git a/java/droiddoc.go b/java/droiddoc.go index 9ec2be813..53c75b5c5 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -485,7 +485,7 @@ func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps { } else if sdkVersion == "" { linkType = javaPlatform } - deps.classpath = append(deps.classpath, dep.HeaderJars(linkType)...) + deps.classpath = append(deps.classpath, dep.ImplementationJars(linkType)...) case android.SourceFileProducer: checkProducesJars(ctx, dep) deps.classpath = append(deps.classpath, dep.Srcs()...) diff --git a/java/java.go b/java/java.go index 06d35644d..99af2f5ab 100644 --- a/java/java.go +++ b/java/java.go @@ -313,6 +313,7 @@ type Dependency interface { type SdkLibraryDependency interface { HeaderJars(linkType linkType) android.Paths + ImplementationJars(linkType linkType) android.Paths } type SrcDependency interface { diff --git a/java/sdk_library.go b/java/sdk_library.go index e65af65f4..3bac8f6f0 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -129,6 +129,11 @@ type sdkLibrary struct { systemApiStubsPath android.Paths testApiStubsPath android.Paths implLibPath android.Paths + + publicApiStubsImplPath android.Paths + systemApiStubsImplPath android.Paths + testApiStubsImplPath android.Paths + implLibImplPath android.Paths } func (module *sdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) { @@ -151,12 +156,16 @@ func (module *sdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) switch tag { case publicApiStubsTag: module.publicApiStubsPath = lib.HeaderJars() + module.publicApiStubsImplPath = lib.ImplementationJars() case systemApiStubsTag: module.systemApiStubsPath = lib.HeaderJars() + module.systemApiStubsImplPath = lib.ImplementationJars() case testApiStubsTag: module.testApiStubsPath = lib.HeaderJars() + module.testApiStubsImplPath = lib.ImplementationJars() case implLibTag: module.implLibPath = lib.HeaderJars() + module.implLibImplPath = lib.ImplementationJars() default: ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag) } @@ -557,6 +566,18 @@ func (module *sdkLibrary) HeaderJars(linkType linkType) android.Paths { } } +// to satisfy SdkLibraryDependency interface +func (module *sdkLibrary) ImplementationJars(linkType linkType) android.Paths { + // This module is just a wrapper for the stubs. + if linkType == javaSystem { + return module.systemApiStubsImplPath + } else if linkType == javaPlatform { + return module.implLibImplPath + } else { + return module.publicApiStubsImplPath + } +} + func javaSdkLibraries(config android.Config) *[]string { return config.Once("javaSdkLibraries", func() interface{} { return &[]string{}