从 Android Studio 构建替代 buildType 时,ProGuard 不会混淆
Posted
技术标签:
【中文标题】从 Android Studio 构建替代 buildType 时,ProGuard 不会混淆【英文标题】:ProGuard doesn't obfuscate when building alternative buildType from Android Studio 【发布时间】:2016-11-02 07:48:45 【问题描述】:简而言之,当我源代码,但在我使用“生成签名的 APK...”选项来创建 apk 文件时工作。
还有更多细节:android Studio 2.1.1,Gradle 版本:2.10,插件版本 .2.1.0
我有 3 种构建类型,配置如下:
buildTypes
release
minifyEnabled true
...
proguardFile 'proguard-rules.pro'
proguardFile getDefaultProguardFile('proguard-android.txt')
signingConfig signingConfigs.release
releaseDebug
debuggable true
minifyEnabled true
...
proguardFile 'proguard-rules.pro'
proguardFile getDefaultProguardFile('proguard-android.txt')
signingConfig signingConfigs.release
debug
debuggable true
minifyEnabled false
...
proguardFile getDefaultProguardFile('proguard-android.txt')
testProguardFile 'proguard-rules-test.pro'
signingConfig signingConfigs.release
我直接从 Android Studio 运行应用程序并得到这样的结果:
发布 - 混淆 releaseDebug - 不混淆 调试 - 未混淆当我使用“生成签名的 APK...”选项时:
发布 - 混淆 releaseDebug - 混淆 调试 - 未混淆是构建系统问题还是我遗漏了什么?
附:只是为了澄清,已经为 releaseDebug 构建类型启用了 minifyEnabled 并且 ProGuard 正在工作,但在这种特殊情况下不是。这与调试模式无关。
【问题讨论】:
Is it possible to use proguard in debug mode?的可能重复 我很抱歉,但不是。 ProGuard 正在工作,但不是在一种特定情况下。这与调试模式无关。 【参考方案1】:最后,经过一些测试,我认识到这个问题是由 releaseDebug 配置中的debuggable true
语句引起的。
因此,如果您在替代构建类型中使用 debuggable true
和 minifyEnabled true
语句,Android Studio(或 Gradle)将不会使用 ProGuard 混淆。
【讨论】:
让人们信任 Android 工具链。 但是否存在可调试 true && minifyEnabled true 的可能性?以上是关于从 Android Studio 构建替代 buildType 时,ProGuard 不会混淆的主要内容,如果未能解决你的问题,请参考以下文章
错误记录Android Studio 中 Gradle 面板 Task 不显示问题 ( 菜单栏 / File / Settings / Experimental 取消勾选 Do not bui )
android studio2021.3.1 最新xposed模块编写指南
是否有必要安装 Android Studio 以实现颤振或啥可以替代 android studio?
如何从 Android Studio 为 Flutter 构建签名的 apk
Android Gradle 插件自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )
Android Gradle 插件自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )