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

如何避免Release构建APK中Drawable资源名称被混淆?

解决方案

要在保留代码混淆的同时阻止Release构建中的资源重命名,针对AGP 8.2.1 + Gradle 8.2的环境,你需要明确禁用资源重命名独立开关——这是AGP 8.x新增的控制项,和shrinkResources并不完全绑定,以下是具体配置:

1. 修改build.gradle配置

根据你使用的Groovy或Kotlin DSL,选择对应配置添加到Release构建块中:

Groovy 版本

android {
    buildTypes {
        release {
            minifyEnabled true // 保留代码混淆
            shrinkResources false // 关闭资源压缩
            // 核心:禁用资源重命名
            resourceProguard {
                enabled false
            }
            // 兼容部分AGP版本的写法
            androidResources {
                renameResources false
            }
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

Kotlin DSL 版本

android {
    buildTypes {
        release {
            isMinifyEnabled = true // 保留代码混淆
            isShrinkResources = false // 关闭资源压缩
            // 核心:禁用资源重命名
            resourceProguard {
                isEnabled = false
            }
            // 兼容部分AGP版本的写法
            androidResources {
                renameResources = false
            }
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        }
    }
}

2. 验证效果

构建Release APK后,通过APK分析器检查:

  • resources.arsc中的资源名称应与Debug构建完全一致
  • res/drawables/等目录下的文件名不会被替换为随机命名格式

3. 额外排查点

如果配置后仍存在资源重命名,检查是否有第三方插件(如资源优化、多渠道打包插件)自动开启了资源重命名逻辑,需禁用对应插件的资源处理功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 23:43:15