安卓工作室调试"应用程序"不尊重缩小启用



我的gradle配置如下所示。我为调试和发布模式启用了 minifyEnabled。但仅在发布模式下,代码会被混淆。如果我在Android Studio上单击调试按钮,minifyEnabled似乎不起作用,我仍然可以使用断点进行调试,并且proguard文件也不会生效。但是,如果我构建调试模式 apk,则 minifyEnabled 标志和 proguard 文件可以工作,该文件已通过 apk 分析进行验证。

正常吗?我所知道的是,如果您在调试模式下启用 minifyEnabled,那么调试器将无法工作。

buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-debug.txt'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-release.txt'
}
}
minifyEnabled

不会阻止调试代码,它支持代码收缩、混淆和优化,如此处所述。

您需要将debuggable标志设置为 false 以防止调试:

buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-debug.txt'
}
release {
debuggable false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-release.txt'
}
}

关于仅在发布构建类型中起作用的混淆,这可能是由于特定于调试构建变体 (proguard-rules-debug.txt( 的 proguard 规则。但是,如果您在编译的apk中看到它被缩小,则应缩小您的代码,也许您的意思是即使缩小了它也是可调试的。

最新更新