如何在Android Studio中禁用代码混淆?配置后仍混淆的解决方法
代码仍被混淆的原因及彻底禁用方案
可能的原因
- 仅配置Debug构建类型,Release包未处理:你的
build.gradle里只给debug构建类型设置了minifyEnabled false,但如果实际打包的是release版本,默认情况下release的minifyEnabled为true,会自动启用混淆。 - ProGuard规则包名不匹配:
proguard-rules.pro里的-keep class com.my.package.** { *; }规则,包名和项目实际命名空间com.example.myapplication2不符,这条规则完全无效,无法保护你的代码。 - 构建缓存残留:之前构建生成的混淆缓存未清理,导致新打包的文件仍带有混淆痕迹。
彻底禁用混淆的修改方案
1. 统一配置所有构建类型的混淆开关
修改build.gradle的buildTypes块,确保release也禁用混淆:
buildTypes { debug { minifyEnabled false // 当minifyEnabled为false时,ProGuard不会执行,可直接移除proguardFiles引用避免干扰 // proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } release { minifyEnabled false // 同理可移除proguardFiles引用,或保留但确保规则正确 // proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }
2. 修正或清理ProGuard规则
如果保留proguard-rules.pro,把无效的包名规则替换为项目真实命名空间:
# 替换成项目实际的包名 -keep class com.example.myapplication2.** { *; } # 当minifyEnabled为false时,-dontobfuscate等规则不会生效,可按需删除
也可以直接清空自定义规则,因为minifyEnabled false时ProGuard不会运行,规则无实际作用。
3. 清理并重建项目
- 执行Android Studio的
Build > Clean Project - 再执行
Build > Rebuild Project - 重新生成安装包,避免缓存导致的混淆残留
内容的提问来源于stack exchange,提问作者Pwners
相关产品推荐
相关产品推荐

