From fc24ad3d4e23ec992d47621601a98bebec6695bb Mon Sep 17 00:00:00 2001 From: Ulya Trafimovich Date: Wed, 19 Aug 2020 16:32:54 +0100 Subject: Propagate transitive SDK Java library dependencies to dexpreopt. For some dependencies, like stubs, the SDK library may not be found at build time (either because the implementation library is not among the dependencies of the dexpreopted module, or because it's part of a prebuilt, or because it's missing from the build altogether). In such cases dexpreopt is useless, because dex2oat does not have access to the full classpath (unless the &-classpath is used). Therefore do not dexpreopt in such cases. Test: lunch aosp_cf_x86_phone-userdebug && m Bug: 132357300 Change-Id: If289088cfd103011ccb16165e95a97b30fd31b81 --- java/java.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'java/java.go') diff --git a/java/java.go b/java/java.go index 4d7d568ad..27e425dc1 100644 --- a/java/java.go +++ b/java/java.go @@ -991,7 +991,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps { case libTag: deps.classpath = append(deps.classpath, dep.SdkHeaderJars(ctx, j.sdkVersion())...) // names of sdk libs that are directly depended are exported - j.exportedSdkLibs.AddLibraryPath(ctx, dep.OptionalImplicitSdkLibrary(), dep.DexJarBuildPath(), dep.DexJarInstallPath()) + j.exportedSdkLibs.MaybeAddLibraryPath(ctx, dep.OptionalImplicitSdkLibrary(), dep.DexJarBuildPath(), dep.DexJarInstallPath()) case staticLibTag: ctx.ModuleErrorf("dependency on java_sdk_library %q can only be in libs", otherName) } @@ -1970,7 +1970,7 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) { // add the name of that java_sdk_library to the exported sdk libs to make sure // that, if necessary, a element for that java_sdk_library is // added to the Android manifest. - j.exportedSdkLibs.AddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), j.DexJarBuildPath(), j.DexJarInstallPath()) + j.exportedSdkLibs.MaybeAddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), j.DexJarBuildPath(), j.DexJarInstallPath()) j.distFiles = j.GenerateTaggedDistFiles(ctx) } @@ -2608,7 +2608,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { switch tag { case libTag: // names of sdk libs that are directly depended are exported - j.exportedSdkLibs.AddLibraryPath(ctx, &otherName, dep.DexJarBuildPath(), dep.DexJarInstallPath()) + j.exportedSdkLibs.AddLibraryPath(ctx, otherName, dep.DexJarBuildPath(), dep.DexJarInstallPath()) } } }) @@ -2623,7 +2623,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { // add the name of that java_sdk_library to the exported sdk libs to make sure // that, if necessary, a element for that java_sdk_library is // added to the Android manifest. - j.exportedSdkLibs.AddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), outputFile, installFile) + j.exportedSdkLibs.MaybeAddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), outputFile, installFile) j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Aidl.Export_include_dirs) } -- cgit v1.2.3-59-g8ed1b