diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/androidmk.go | 11 | ||||
| -rwxr-xr-x | java/app.go | 2 | ||||
| -rw-r--r-- | java/app_import.go | 2 | ||||
| -rw-r--r-- | java/base.go | 12 | ||||
| -rw-r--r-- | java/classpath_fragment.go | 2 | ||||
| -rw-r--r-- | java/dexpreopt.go | 29 | ||||
| -rw-r--r-- | java/dexpreopt_bootjars.go | 12 | ||||
| -rw-r--r-- | java/dexpreopt_check.go | 7 | ||||
| -rw-r--r-- | java/java.go | 4 | ||||
| -rw-r--r-- | java/lint.go | 3 | ||||
| -rw-r--r-- | java/platform_compat_config.go | 2 | ||||
| -rw-r--r-- | java/robolectric.go | 2 | ||||
| -rw-r--r-- | java/rro_test.go | 18 | ||||
| -rw-r--r-- | java/sdk.go | 2 | ||||
| -rw-r--r-- | java/sdk_library.go | 8 | ||||
| -rw-r--r-- | java/systemserver_classpath_fragment.go | 4 |
16 files changed, 83 insertions, 37 deletions
diff --git a/java/androidmk.go b/java/androidmk.go index 272a4fd36..19fe7e2fb 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -182,7 +182,14 @@ func (j *TestHelperLibrary) AndroidMkEntries() []android.AndroidMkEntries { } func (prebuilt *Import) AndroidMkEntries() []android.AndroidMkEntries { - if prebuilt.hideApexVariantFromMake || !prebuilt.ContainingSdk().Unversioned() { + if prebuilt.hideApexVariantFromMake { + // For a library imported from a prebuilt APEX, we don't need a Make module for itself, as we + // don't need to install it. However, we need to add its dexpreopt outputs as sub-modules, if it + // is preopted. + dexpreoptEntries := prebuilt.dexpreopter.AndroidMkEntriesForApex() + return append(dexpreoptEntries, android.AndroidMkEntries{Disabled: true}) + } + if !prebuilt.ContainingSdk().Unversioned() { return []android.AndroidMkEntries{android.AndroidMkEntries{ Disabled: true, }} @@ -685,7 +692,7 @@ func (r *RuntimeResourceOverlay) AndroidMkEntries() []android.AndroidMkEntries { ExtraEntries: []android.AndroidMkExtraEntriesFunc{ func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { entries.SetString("LOCAL_CERTIFICATE", r.certificate.AndroidMkString()) - entries.SetPath("LOCAL_MODULE_PATH", r.installDir.ToMakePath()) + entries.SetPath("LOCAL_MODULE_PATH", r.installDir) entries.AddStrings("LOCAL_OVERRIDES_PACKAGES", r.properties.Overrides...) }, }, diff --git a/java/app.go b/java/app.go index b753c0cb8..1c69aeb7a 100755 --- a/java/app.go +++ b/java/app.go @@ -485,7 +485,7 @@ func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext a.jniLibs = jniLibs if a.shouldEmbedJnis(ctx) { jniJarFile = android.PathForModuleOut(ctx, "jnilibs.zip") - a.installPathForJNISymbols = a.installPath(ctx).ToMakePath() + a.installPathForJNISymbols = a.installPath(ctx) TransformJniLibsToJar(ctx, jniJarFile, jniLibs, a.useEmbeddedNativeLibs(ctx)) for _, jni := range jniLibs { if jni.coverageFile.Valid() { diff --git a/java/app_import.go b/java/app_import.go index 4d1969ebb..3e5f972a4 100644 --- a/java/app_import.go +++ b/java/app_import.go @@ -108,8 +108,6 @@ func (a *AndroidAppImport) IsInstallable() bool { return true } -func (a *AndroidAppImport) InstallBypassMake() bool { return true } - // Updates properties with variant-specific values. func (a *AndroidAppImport) processVariants(ctx android.LoadHookContext) { config := ctx.Config() diff --git a/java/base.go b/java/base.go index c45ef641e..7cd71a270 100644 --- a/java/base.go +++ b/java/base.go @@ -122,6 +122,14 @@ type CommonProperties struct { Javacflags []string } + Openjdk11 struct { + // List of source files that should only be used when passing -source 1.9 or higher + Srcs []string `android:"path"` + + // List of javac flags that should only be used when passing -source 1.9 or higher + Javacflags []string + } + // When compiling language level 9+ .java code in packages that are part of // a system module, patch_module names the module that your sources and // dependencies should be patched into. The Android runtime currently @@ -959,6 +967,10 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { if flags.javaVersion.usesJavaModules() { j.properties.Srcs = append(j.properties.Srcs, j.properties.Openjdk9.Srcs...) } + if ctx.Config().TargetsJava11() { + j.properties.Srcs = append(j.properties.Srcs, j.properties.Openjdk11.Srcs...) + } + srcFiles := android.PathsForModuleSrcExcludes(ctx, j.properties.Srcs, j.properties.Exclude_srcs) if hasSrcExt(srcFiles.Strings(), ".proto") { flags = protoFlags(ctx, &j.properties, &j.protoProperties, flags) diff --git a/java/classpath_fragment.go b/java/classpath_fragment.go index e77971b13..ca2752877 100644 --- a/java/classpath_fragment.go +++ b/java/classpath_fragment.go @@ -204,7 +204,7 @@ func (c *ClasspathFragmentBase) androidMkEntries() []android.AndroidMkEntries { OutputFile: android.OptionalPathForPath(c.outputFilepath), ExtraEntries: []android.AndroidMkExtraEntriesFunc{ func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { - entries.SetString("LOCAL_MODULE_PATH", c.installDirPath.ToMakePath().String()) + entries.SetString("LOCAL_MODULE_PATH", c.installDirPath.String()) entries.SetString("LOCAL_INSTALLED_MODULE_STEM", c.outputFilepath.Base()) }, }, diff --git a/java/dexpreopt.go b/java/dexpreopt.go index f3a53eed9..e9bc51878 100644 --- a/java/dexpreopt.go +++ b/java/dexpreopt.go @@ -115,6 +115,11 @@ func isApexVariant(ctx android.BaseModuleContext) bool { return !apexInfo.IsForPlatform() } +func forPrebuiltApex(ctx android.BaseModuleContext) bool { + apexInfo := ctx.Provider(android.ApexInfoProvider).(android.ApexInfo) + return apexInfo.ForPrebuiltApex +} + func moduleName(ctx android.BaseModuleContext) string { // Remove the "prebuilt_" prefix if the module is from a prebuilt because the prefix is not // expected by dexpreopter. @@ -134,7 +139,9 @@ func (d *dexpreopter) dexpreoptDisabled(ctx android.BaseModuleContext) bool { return true } - if !ctx.Module().(DexpreopterInterface).IsInstallable() { + // If the module is from a prebuilt APEX, it shouldn't be installable, but it can still be + // dexpreopted. + if !ctx.Module().(DexpreopterInterface).IsInstallable() && !forPrebuiltApex(ctx) { return true } @@ -152,15 +159,16 @@ func (d *dexpreopter) dexpreoptDisabled(ctx android.BaseModuleContext) bool { return true } + isApexSystemServerJar := global.AllApexSystemServerJars(ctx).ContainsJar(moduleName(ctx)) if isApexVariant(ctx) { // Don't preopt APEX variant module unless the module is an APEX system server jar and we are // building the entire system image. - if !global.ApexSystemServerJars.ContainsJar(moduleName(ctx)) || ctx.Config().UnbundledBuild() { + if !isApexSystemServerJar || ctx.Config().UnbundledBuild() { return true } } else { // Don't preopt the platform variant of an APEX system server jar to avoid conflicts. - if global.ApexSystemServerJars.ContainsJar(moduleName(ctx)) { + if isApexSystemServerJar { return true } } @@ -191,8 +199,8 @@ func (d *dexpreopter) odexOnSystemOther(ctx android.ModuleContext, installPath a func (d *dexpreopter) getInstallPath( ctx android.ModuleContext, defaultInstallPath android.InstallPath) android.InstallPath { global := dexpreopt.GetGlobalConfig(ctx) - if global.ApexSystemServerJars.ContainsJar(moduleName(ctx)) { - dexLocation := dexpreopt.GetSystemServerDexLocation(global, moduleName(ctx)) + if global.AllApexSystemServerJars(ctx).ContainsJar(moduleName(ctx)) { + dexLocation := dexpreopt.GetSystemServerDexLocation(ctx, global, moduleName(ctx)) return android.PathForModuleInPartitionInstall(ctx, "", strings.TrimPrefix(dexLocation, "/")) } if !d.dexpreoptDisabled(ctx) && isApexVariant(ctx) && @@ -229,8 +237,7 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Wr return } - isSystemServerJar := global.SystemServerJars.ContainsJar(moduleName(ctx)) || - global.ApexSystemServerJars.ContainsJar(moduleName(ctx)) + isSystemServerJar := global.AllSystemServerJars(ctx).ContainsJar(moduleName(ctx)) bootImage := defaultBootImageConfig(ctx) if global.UseArtImage { @@ -336,6 +343,8 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Wr dexpreoptRule.Build("dexpreopt", "dexpreopt") + isApexSystemServerJar := global.AllApexSystemServerJars(ctx).ContainsJar(moduleName(ctx)) + for _, install := range dexpreoptRule.Installs() { // Remove the "/" prefix because the path should be relative to $ANDROID_PRODUCT_OUT. installDir := strings.TrimPrefix(filepath.Dir(install.To), "/") @@ -343,7 +352,7 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Wr arch := filepath.Base(installDir) installPath := android.PathForModuleInPartitionInstall(ctx, "", installDir) - if global.ApexSystemServerJars.ContainsJar(moduleName(ctx)) { + if isApexSystemServerJar { // APEX variants of java libraries are hidden from Make, so their dexpreopt // outputs need special handling. Currently, for APEX variants of java // libraries, only those in the system server classpath are handled here. @@ -362,7 +371,7 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Wr } } - if !global.ApexSystemServerJars.ContainsJar(moduleName(ctx)) { + if !isApexSystemServerJar { d.builtInstalled = dexpreoptRule.Installs().String() } } @@ -381,7 +390,7 @@ func (d *dexpreopter) AndroidMkEntriesForApex() []android.AndroidMkEntries { OutputFile: android.OptionalPathForPath(install.outputPathOnHost), ExtraEntries: []android.AndroidMkExtraEntriesFunc{ func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { - entries.SetString("LOCAL_MODULE_PATH", install.installDirOnDevice.ToMakePath().String()) + entries.SetString("LOCAL_MODULE_PATH", install.installDirOnDevice.String()) entries.SetString("LOCAL_INSTALLED_MODULE_STEM", install.installFileOnDevice) entries.SetString("LOCAL_NOT_AVAILABLE_FOR_PLATFORM", "false") }, diff --git a/java/dexpreopt_bootjars.go b/java/dexpreopt_bootjars.go index 75083e8c2..c599c4da0 100644 --- a/java/dexpreopt_bootjars.go +++ b/java/dexpreopt_bootjars.go @@ -506,8 +506,18 @@ func copyBootJarsToPredefinedLocations(ctx android.ModuleContext, srcBootDexJars dst := dstBootJarsByModule[name] if src == nil { + // A dex boot jar should be provided by the source java module. It needs to be installable or + // have compile_dex=true - cf. assignments to java.Module.dexJarFile. + // + // However, the source java module may be either replaced or overridden (using prefer:true) by + // a prebuilt java module with the same name. In that case the dex boot jar needs to be + // provided by the corresponding prebuilt APEX module. That APEX is the one that refers + // through a exported_(boot|systemserver)classpath_fragments property to a + // prebuilt_(boot|systemserver)classpath_fragment module, which in turn lists the prebuilt + // java module in the contents property. If that chain is broken then this dependency will + // fail. if !ctx.Config().AllowMissingDependencies() { - ctx.ModuleErrorf("module %s does not provide a dex boot jar", name) + ctx.ModuleErrorf("module %s does not provide a dex boot jar (see comment next to this message in Soong for details)", name) } else { ctx.AddMissingDependencies([]string{name}) } diff --git a/java/dexpreopt_check.go b/java/dexpreopt_check.go index 565901d35..149cbb758 100644 --- a/java/dexpreopt_check.go +++ b/java/dexpreopt_check.go @@ -59,7 +59,7 @@ func dexpreoptSystemserverCheckFactory() android.SingletonModule { func getInstallPath(ctx android.ModuleContext, location string) android.InstallPath { return android.PathForModuleInPartitionInstall( - ctx, "", strings.TrimPrefix(location, "/")).ToMakePath() + ctx, "", strings.TrimPrefix(location, "/")) } func (m *dexpreoptSystemserverCheck) GenerateAndroidBuildActions(ctx android.ModuleContext) { @@ -72,9 +72,10 @@ func (m *dexpreoptSystemserverCheck) GenerateAndroidBuildActions(ctx android.Mod return } - systemServerJars := dexpreopt.AllSystemServerJars(ctx, global) + // TODO(b/203198541): Check all system server jars. + systemServerJars := global.AllSystemServerClasspathJars(ctx) for _, jar := range systemServerJars.CopyOfJars() { - dexLocation := dexpreopt.GetSystemServerDexLocation(global, jar) + dexLocation := dexpreopt.GetSystemServerDexLocation(ctx, global, jar) odexLocation := dexpreopt.ToOdexPath(dexLocation, targets[0].Arch.ArchType) odexPath := getInstallPath(ctx, odexLocation) vdexPath := getInstallPath(ctx, pathtools.ReplaceExtension(odexLocation, "vdex")) diff --git a/java/java.go b/java/java.go index f77c694ba..9b4a005f0 100644 --- a/java/java.go +++ b/java/java.go @@ -267,8 +267,6 @@ func (j *Module) XrefJavaFiles() android.Paths { return j.kytheFiles } -func (j *Module) InstallBypassMake() bool { return true } - type dependencyTag struct { blueprint.BaseDependencyTag name string @@ -451,7 +449,7 @@ func getJavaVersion(ctx android.ModuleContext, javaVersion string, sdkContext an return normalizeJavaVersion(ctx, javaVersion) } else if ctx.Device() { return defaultJavaLanguageVersion(ctx, sdkContext.SdkVersion(ctx)) - } else if ctx.Config().IsEnvTrue("EXPERIMENTAL_TARGET_JAVA_VERSION_11") { + } else if ctx.Config().TargetsJava11() { // Temporary experimental flag to be able to try and build with // java version 11 options. The flag, if used, just sets Java // 11 as the default version, leaving any components that diff --git a/java/lint.go b/java/lint.go index fe3218e90..7845c336b 100644 --- a/java/lint.go +++ b/java/lint.go @@ -377,6 +377,7 @@ func (l *linter) lint(ctx android.ModuleContext) { html := android.PathForModuleOut(ctx, "lint", "lint-report.html") text := android.PathForModuleOut(ctx, "lint", "lint-report.txt") xml := android.PathForModuleOut(ctx, "lint", "lint-report.xml") + baseline := android.PathForModuleOut(ctx, "lint", "lint-baseline.xml") depSetsBuilder := NewLintDepSetBuilder().Direct(html, text, xml) @@ -447,6 +448,8 @@ func (l *linter) lint(ctx android.ModuleContext) { cmd.FlagWithInput("--baseline ", lintBaseline.Path()) } + cmd.FlagWithOutput("--write-reference-baseline ", baseline) + cmd.Text("|| (").Text("if [ -e").Input(text).Text("]; then cat").Input(text).Text("; fi; exit 7)") rule.Command().Text("rm -rf").Flag(lintPaths.cacheDir.String()).Flag(lintPaths.homeDir.String()) diff --git a/java/platform_compat_config.go b/java/platform_compat_config.go index 0d8ebac02..f442ddfd4 100644 --- a/java/platform_compat_config.go +++ b/java/platform_compat_config.go @@ -115,7 +115,7 @@ func (p *platformCompatConfig) AndroidMkEntries() []android.AndroidMkEntries { Include: "$(BUILD_PREBUILT)", ExtraEntries: []android.AndroidMkExtraEntriesFunc{ func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { - entries.SetString("LOCAL_MODULE_PATH", p.installDirPath.ToMakePath().String()) + entries.SetString("LOCAL_MODULE_PATH", p.installDirPath.String()) entries.SetString("LOCAL_INSTALLED_MODULE_STEM", p.configFile.Base()) }, }, diff --git a/java/robolectric.go b/java/robolectric.go index 16af546ba..f71952172 100644 --- a/java/robolectric.go +++ b/java/robolectric.go @@ -352,7 +352,6 @@ func RobolectricTestFactory() android.Module { return module } -func (r *robolectricTest) InstallBypassMake() bool { return true } func (r *robolectricTest) InstallInTestcases() bool { return true } func (r *robolectricTest) InstallForceOS() (*android.OsType, *android.ArchType) { return &r.forceOSType, &r.forceArchType @@ -430,7 +429,6 @@ func (r *robolectricRuntimes) GenerateAndroidBuildActions(ctx android.ModuleCont } } -func (r *robolectricRuntimes) InstallBypassMake() bool { return true } func (r *robolectricRuntimes) InstallInTestcases() bool { return true } func (r *robolectricRuntimes) InstallForceOS() (*android.OsType, *android.ArchType) { return &r.forceOSType, &r.forceArchType diff --git a/java/rro_test.go b/java/rro_test.go index 27abbe4f3..be0d7ba47 100644 --- a/java/rro_test.go +++ b/java/rro_test.go @@ -62,6 +62,7 @@ func TestRuntimeResourceOverlay(t *testing.T) { result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, PrepareForTestWithOverlayBuildComponents, + android.FixtureModifyConfig(android.SetKatiEnabledForTests), fs.AddToFixture(), ).RunTestWithBp(t, bp) @@ -127,7 +128,10 @@ func TestRuntimeResourceOverlay(t *testing.T) { } func TestRuntimeResourceOverlay_JavaDefaults(t *testing.T) { - ctx, config := testJava(t, ` + result := android.GroupFixturePreparers( + PrepareForTestWithJavaDefaultModules, + android.FixtureModifyConfig(android.SetKatiEnabledForTests), + ).RunTestWithBp(t, ` java_defaults { name: "rro_defaults", theme: "default_theme", @@ -148,7 +152,7 @@ func TestRuntimeResourceOverlay_JavaDefaults(t *testing.T) { // // RRO module with defaults // - m := ctx.ModuleForTests("foo_with_defaults", "android_common") + m := result.ModuleForTests("foo_with_defaults", "android_common") // Check AAPT2 link flags. aapt2Flags := strings.Split(m.Output("package-res.apk").Args["flags"], " ") @@ -159,14 +163,14 @@ func TestRuntimeResourceOverlay_JavaDefaults(t *testing.T) { } // Check device location. - path := android.AndroidMkEntriesForTest(t, ctx, m.Module())[0].EntryMap["LOCAL_MODULE_PATH"] + path := android.AndroidMkEntriesForTest(t, result.TestContext, m.Module())[0].EntryMap["LOCAL_MODULE_PATH"] expectedPath := []string{shared.JoinPath("out/target/product/test_device/product/overlay/default_theme")} - android.AssertStringPathsRelativeToTopEquals(t, "LOCAL_MODULE_PATH", config, expectedPath, path) + android.AssertStringPathsRelativeToTopEquals(t, "LOCAL_MODULE_PATH", result.Config, expectedPath, path) // // RRO module without defaults // - m = ctx.ModuleForTests("foo_barebones", "android_common") + m = result.ModuleForTests("foo_barebones", "android_common") // Check AAPT2 link flags. aapt2Flags = strings.Split(m.Output("package-res.apk").Args["flags"], " ") @@ -176,9 +180,9 @@ func TestRuntimeResourceOverlay_JavaDefaults(t *testing.T) { } // Check device location. - path = android.AndroidMkEntriesForTest(t, ctx, m.Module())[0].EntryMap["LOCAL_MODULE_PATH"] + path = android.AndroidMkEntriesForTest(t, result.TestContext, m.Module())[0].EntryMap["LOCAL_MODULE_PATH"] expectedPath = []string{shared.JoinPath("out/target/product/test_device/product/overlay")} - android.AssertStringPathsRelativeToTopEquals(t, "LOCAL_MODULE_PATH", config, expectedPath, path) + android.AssertStringPathsRelativeToTopEquals(t, "LOCAL_MODULE_PATH", result.Config, expectedPath, path) } func TestOverrideRuntimeResourceOverlay(t *testing.T) { diff --git a/java/sdk.go b/java/sdk.go index de7070eef..756a24deb 100644 --- a/java/sdk.go +++ b/java/sdk.go @@ -55,7 +55,7 @@ func defaultJavaLanguageVersion(ctx android.EarlyModuleContext, s android.SdkSpe return JAVA_VERSION_7 } else if sdk.FinalOrFutureInt() <= 29 { return JAVA_VERSION_8 - } else if ctx.Config().IsEnvTrue("EXPERIMENTAL_TARGET_JAVA_VERSION_11") { + } else if ctx.Config().TargetsJava11() { // Temporary experimental flag to be able to try and build with // java version 11 options. The flag, if used, just sets Java // 11 as the default version, leaving any components that diff --git a/java/sdk_library.go b/java/sdk_library.go index de0d796cc..0bc8895fe 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -1392,6 +1392,10 @@ func (module *SdkLibrary) createStubsLibrary(mctx android.DefaultableHookContext Srcs []string Javacflags []string } + Openjdk11 struct { + Srcs []string + Javacflags []string + } Dist struct { Targets []string Dest *string @@ -1418,6 +1422,8 @@ func (module *SdkLibrary) createStubsLibrary(mctx android.DefaultableHookContext } props.Openjdk9.Srcs = module.properties.Openjdk9.Srcs props.Openjdk9.Javacflags = module.properties.Openjdk9.Javacflags + props.Openjdk11.Srcs = module.properties.Openjdk11.Srcs + props.Openjdk11.Javacflags = module.properties.Openjdk11.Javacflags // We compile the stubs for 1.8 in line with the main android.jar stubs, and potential // interop with older developer tools that don't support 1.9. props.Java_version = proptools.StringPtr("1.8") @@ -2641,7 +2647,7 @@ func (module *sdkLibraryXml) AndroidMkEntries() []android.AndroidMkEntries { ExtraEntries: []android.AndroidMkExtraEntriesFunc{ func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { entries.SetString("LOCAL_MODULE_TAGS", "optional") - entries.SetString("LOCAL_MODULE_PATH", module.installDirPath.ToMakePath().String()) + entries.SetString("LOCAL_MODULE_PATH", module.installDirPath.String()) entries.SetString("LOCAL_INSTALLED_MODULE_STEM", module.outputFilePath.Base()) }, }, diff --git a/java/systemserver_classpath_fragment.go b/java/systemserver_classpath_fragment.go index 2ec33a422..fa61ea68c 100644 --- a/java/systemserver_classpath_fragment.go +++ b/java/systemserver_classpath_fragment.go @@ -60,7 +60,7 @@ func (p *platformSystemServerClasspathModule) GenerateAndroidBuildActions(ctx an classpathJars := configuredJarListToClasspathJars(ctx, configuredJars, p.classpathType) standaloneConfiguredJars := p.standaloneConfiguredJars(ctx) standaloneClasspathJars := configuredJarListToClasspathJars(ctx, standaloneConfiguredJars, STANDALONE_SYSTEMSERVER_JARS) - configuredJars = configuredJars.AppendList(standaloneConfiguredJars) + configuredJars = configuredJars.AppendList(&standaloneConfiguredJars) classpathJars = append(classpathJars, standaloneClasspathJars...) p.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, configuredJars, classpathJars) } @@ -122,7 +122,7 @@ func (s *SystemServerClasspathModule) GenerateAndroidBuildActions(ctx android.Mo classpathJars := configuredJarListToClasspathJars(ctx, configuredJars, s.classpathType) standaloneConfiguredJars := s.standaloneConfiguredJars(ctx) standaloneClasspathJars := configuredJarListToClasspathJars(ctx, standaloneConfiguredJars, STANDALONE_SYSTEMSERVER_JARS) - configuredJars = configuredJars.AppendList(standaloneConfiguredJars) + configuredJars = configuredJars.AppendList(&standaloneConfiguredJars) classpathJars = append(classpathJars, standaloneClasspathJars...) s.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, configuredJars, classpathJars) |