You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Proguard无法移除AAR依赖中的日志,求排查方案

AAR日志未被ProGuard移除的问题解决

核心原因

问题出在-assumenosideeffects规则的生效条件未满足,且修改AAR内部规则的方式不可靠。

具体解决步骤

  1. 启用ProGuard代码优化
    默认的proguard-android.txt关闭了部分关键优化,而-assumenosideeffects只有在优化阶段才会生效。修改build.gradle中的ProGuard配置,替换为带优化的默认文件:
release {
    signingConfig signingConfigs.debug
    shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)
    minifyEnabled enableProguardInReleaseBuilds
    // 替换为优化版默认配置文件
    proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
}
  1. 将规则添加到应用自身的ProGuard文件
    不要修改AAR内部规则,直接在应用的proguard-rules.pro中添加以下内容:
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** i(...);
    public static *** w(...);
    public static *** e(...);
}

应用的ProGuard配置会在合并时优先确保优化阶段读取到该规则,比修改AAR更稳定。

  1. 确认优化配置未被禁用
    如果proguard-rules.pro中有禁用优化的配置,需移除或调整。可明确添加优化参数保证生效:
# 开启默认优化(可按需调整)
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-optimizationpasses 5
  1. 检查AAR是否为预混淆版本
    若AAR本身是混淆后的字节码,ProGuard可能无法识别其中的Log调用。需确认AAR是否为未混淆的debug包,或联系提供者添加对应ProGuard规则。

内容的提问来源于stack exchange,提问作者effendi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:35:10