最近我发现 ProGuard 很奇怪。我有这个代码 fragment
如您所见,方法showTipHoodLock采用2个参数,fragmentManager和top(一些偏移)
但在我使用 minifyEnabled 编译应用程序后 true
如您所见,proguard 从方法签名中删除了第二个参数(名为 top),并将其出现的地方替换为 0 文字。
这是一个错误,还是一个功能,或者我错过了什么?
P.S.如果我更改行中的值
int coords[] = {0, 0}
对于任何其他数字,那么一切都会完美,并且不会删除任何内容。此外,应用程序不同部分(在其他 fragment 中)的相同代码 fragment (复制粘贴)开始工作。
最佳答案
Is it a bug, or a feature, or did I miss something?
这不是错误,这是优化代码的功能。
根据您的代码,第二个参数通过以下逻辑引用为READ ONLY,其值FIXED为0 。
Proguard 将删除(一种 Proguard 优化:删除未使用的参数或传播常量参数)此参数以及此已知固定值简化调用流程。
关于android - Proguard删除方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52848602/