为什么片段和视图不会混淆?

问题描述

虽然 Fragment 和 View 类不是 android MainComponent 并且在 AndroidManifest.xml 中没有引用它们,但是当启用 minify 并且 Proguard 运行良好时,扩展 Fragment 或 View 的类不会更改它们的名称/包。>

为什么他们不混淆?

PS1:其他代码完全混淆(更改名称/包/方法/属性

PS2:上面的类只是混淆了它们的方法属性。 (不是名称和包)

解决方法

为什么他们不混淆?

它们经常被使用反射的字符串引用,例如在布局、菜单和导航资源中。如果 ProGuard 重命名它们,这些字符串将无效,并且您的应用程序将崩溃。因此,默认规则设置为保留这些类的名称。