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

ProGuard未运行求助:配置代码优化后无效果

解决ProGuard未运行的问题

我来帮你排查下ProGuard没生效的问题,从你的配置来看,有几个容易忽略的点可以逐一检查:

  • 确认你真的构建了release变体
    很多时候我们会在Android Studio的Build Variants面板里不小心选中了debug或者自定义的debuggable变体,而非release。你可以通过点击顶部工具栏的「Build Variants」按钮(或者通过View > Tool Windows > Build Variants打开面板),确认当前选中的是release,再重新构建签名APK。

  • 检查ProGuard的输出目录
    在Android Studio 3.0中,ProGuard运行后的输出文件(比如mapping.txt、usage.txt)会存放在app/build/outputs/mapping/release/目录下。如果这个目录不存在,说明ProGuard完全没有执行;如果存在,那可能是你反编译的并非最终的release包。

  • 验证gradle.properties里的相关配置
    打开项目根目录下的gradle.properties文件,检查是否有类似android.enableProguard=false或android.enableMinify=false的配置,这类配置会直接禁用ProGuard,若存在请删除或改为true。

  • 查看release构建的Gradle日志
    在Gradle控制台(View > Tool Windows > Gradle)中,找到app > Tasks > build > assembleRelease任务,右键选择「Run」,然后仔细查看日志输出。如果ProGuard正常运行,你会看到包含ProGuard的日志条目(比如「Executing ProGuard」);如果没有相关日志,说明Gradle并未触发ProGuard任务。

  • 确认ProGuard规则的有效性
    你添加的日志移除规则语法是正确的,但要注意-assumenosideeffects仅在优化模式开启时生效,而你使用的proguard-android-optimize.txt已经默认开启了优化,这部分没问题。你可以在proguard-rules.pro开头添加一行:

    -printconfiguration proguard-config.txt
    

    构建完成后,在app目录下会生成proguard-config.txt文件,你可以查看它来确认你的规则是否被正确加载。

另外,你自定义的debuggable构建类型不会影响release变体的ProGuard运行,无需担心这部分配置。如果以上检查都没问题,建议尝试执行Build > Clean Project清理项目缓存后,再重新构建release包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:27:52