Internal Change PiperOrigin-RevId: 578733487 Change-Id: I78a5232ec2fad8a9d1c48db499791da9e0b1f78e
diff --git a/rules/android_binary_internal/impl.bzl b/rules/android_binary_internal/impl.bzl index bb3264b..ecb36eb 100644 --- a/rules/android_binary_internal/impl.bzl +++ b/rules/android_binary_internal/impl.bzl
@@ -239,9 +239,8 @@ proguard_output_map = optimize_ctx.proguard_output.mapping if is_binary_optimized else None binary_jar = proguarded_jar if proguarded_jar else deploy_jar java_info = java_common.merge([jvm_ctx.java_info, stamp_ctx.java_info]) if stamp_ctx.java_info else jvm_ctx.java_info - runtime_jars = java_info.runtime_output_jars + [packaged_resources_ctx.class_jar] - if proto_ctx.class_jar: - runtime_jars.append(proto_ctx.class_jar) + binary_runtime_jars = deploy_ctx.binary_runtime_jars + forbidden_dexopts = ctx.fragments.android.get_target_dexopts_that_prevent_incremental_dexing if (main_dex_list and multidex != "manual_main_dex") or \ @@ -332,7 +331,7 @@ output = classes_dex_zip, deps = _get_dex_desugar_aspect_deps(ctx), dexopts = ctx.attr.dexopts, - runtime_jars = runtime_jars, + runtime_jars = binary_runtime_jars, main_dex_list = main_dex_list, min_sdk_version = ctx.attr.min_sdk_version, proguarded_jar = proguarded_jar, @@ -412,16 +411,20 @@ def _process_deploy_jar(ctx, stamp_ctx, packaged_resources_ctx, jvm_ctx, build_info_ctx, proto_ctx, **_unused_ctxs): deploy_jar, filtered_deploy_jar, desugar_dict = None, None, {} - + binary_runtime_jars = [] if acls.in_android_binary_starlark_dex_desugar_proguard(str(ctx.label)): java_toolchain = common.get_java_toolchain(ctx) java_info = java_common.merge([jvm_ctx.java_info, stamp_ctx.java_info]) if stamp_ctx.java_info else jvm_ctx.java_info info = _dex.merge_infos(utils.collect_providers(StarlarkAndroidDexInfo, _get_dex_desugar_aspect_deps(ctx))) incremental_dexopts = _dex.filter_dexopts(ctx.attr.dexopts, ctx.fragments.android.get_dexopts_supported_in_incremental_dexing) dex_archives = info.dex_archives_dict.get("".join(incremental_dexopts), depset()).to_list() - binary_runtime_jars = java_info.runtime_output_jars + [packaged_resources_ctx.class_jar] + binary_runtime_jars += java_info.runtime_output_jars + binary_runtime_jars.append(packaged_resources_ctx.class_jar) if proto_ctx.class_jar: binary_runtime_jars.append(proto_ctx.class_jar) + if ctx.configuration.coverage_enabled and hasattr(ctx.attr, "_jacoco_runtime"): + # In offline instrumentation mode, we add the Jacoco runtime to the classpath. + binary_runtime_jars.extend(ctx.attr._jacoco_runtime[DefaultInfo].files.to_list()) if ctx.fragments.android.desugar_java8: desugared_jars = [] @@ -478,6 +481,7 @@ return ProviderInfo( name = "deploy_ctx", value = struct( + binary_runtime_jars = binary_runtime_jars, deploy_jar = deploy_jar, desugar_dict = desugar_dict, filtered_deploy_jar = filtered_deploy_jar,