diff --git a/framework-t/Android.bp b/framework-t/Android.bp index 8c32ded49e..80477f105a 100644 --- a/framework-t/Android.bp +++ b/framework-t/Android.bp @@ -116,6 +116,7 @@ java_sdk_library { "//packages/modules/Connectivity/Tethering/apex", // In preparation for future move "//packages/modules/Connectivity/apex", + "//packages/modules/Connectivity/service", // For R8 only "//packages/modules/Connectivity/service-t", "//packages/modules/Nearby/service", "//frameworks/base", diff --git a/service/Android.bp b/service/Android.bp index 499af25ed1..7dcc8885a1 100644 --- a/service/Android.bp +++ b/service/Android.bp @@ -225,12 +225,27 @@ java_defaults { // This library combines system server jars that have access to different bootclasspath jars. // Lower SDK service jars must not depend on higher SDK jars as that would let them // transitively depend on the wrong bootclasspath jars. Sources also cannot be added here as - // they would transitively depend on bootclasspath jars that may not be available. + // they would depend on bootclasspath jars that may not be available. static_libs: [ "service-connectivity-pre-jarjar", "service-connectivity-tiramisu-pre-jarjar", "service-nearby-pre-jarjar", ], + // The below libraries are not actually needed to build since no source is compiled + // (only combining prebuilt static_libs), but they are necessary so that R8 has the right + // references to optimize the code. Without these, there will be missing class warnings and + // code may be wrongly optimized. + // R8 runs after jarjar, so the framework-X libraries need to be the post-jarjar artifacts + // (.impl), if they are not just stubs, so that the name of jarjared classes match. + libs: [ + "androidx.annotation_annotation", + "framework-annotations-lib", + "framework-connectivity.impl", + "framework-connectivity-t.impl", + "framework-tethering.stubs.module_lib", + "framework-wifi.stubs.module_lib", + "libprotobuf-java-nano", + ], jarjar_rules: ":connectivity-jarjar-rules", apex_available: [ "com.android.tethering",