android - 缩小 Android 应用程序但不要混淆它

标签 android gradle proguard

当我不缩小我的应用程序时,我达到了最大方法数并且构建 dex 文件失败。这可以通过在 build.gradle 中启用 minify 来避免。然而,缺点是现在代码变得模糊了。这对于 Release 构建是可以的,但对于 Debug 构建是有问题的。

有没有办法告诉 gradle 缩小调试构建但不混淆它?

最佳答案

minifyEnabled true

只是一个快捷方式:

postprocessing {
    removeUnusedCode true
    obfuscate true
    optimizeCode true
}

因此,如果您想在不混淆的情况下进行缩小,请将 minifyEnabled true 替换为:

postprocessing {
    removeUnusedCode true
    obfuscate false // <--
    optimizeCode true
}

此外,如果您将 shr​​inkResources 设置为 true,编译器会报错。等效的后处理字段是 removeUnusedResources true,即:

postprocessing {
    removeUnusedCode true
    removeUnusedResources true // <--
    obfuscate false
    optimizeCode true
}

与其他答案相反,useProguard false 不禁用混淆;它将混淆引擎从 ProGuard 更改为 R8。

关于android - 缩小 Android 应用程序但不要混淆它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35853593/

相关文章:

android - 混淆谷歌分析

android - 智能 watch 2 : failed to show widget and control when compiling apk with Proguard

java - 是否可以让 ProGuard 使用 RetentionPolicy.SOURCE 保留元素?

android - android 中可重用拖放 UI 部件的代码设计

android - 使用 Chromecast 流式传输 .m3u8 格式

intellij-idea - 如何在另一个 Intellij gradle 项目中包含一个 Intellij gradle 项目?

xml - 将APK安装到Android Studio上的虚拟设备时出错

android - accessibilityService 中的 onKeyEvent() 未按预期工作

java - 如何使形状在我自己的 XML 文件中定义的按钮显示为可点击?

Android程序类型已经存在错误