Android 带Butterknife的Proguard可防止类名混淆

Android 带Butterknife的Proguard可防止类名混淆,android,android-proguard,butterknife,Android,Android Proguard,Butterknife,因为Butterknife使用反射来生成与所使用的每个活动或片段关联的类。因此,Proguard会忽略这些类,而不会在其规则中混淆这些类 找到了一个解决方法,即使用Butterknife生成的类,用new替换Butterknife.bind(this),然后在我的代码中使用它们。它确实起作用并使我的类变得模糊。但这里唯一的问题是,我必须将它们从Debug文件夹复制到我的包中,以免更改/删除。并在每次添加/删除视图时进行更新 我发现的另一个问题是使用数据绑定更好。但是现在对我来说改变整个代码已经太

因为
Butterknife
使用反射来生成与所使用的每个
活动或
片段关联的类。因此,
Proguard
会忽略这些类,而不会在其规则中混淆这些类

找到了一个解决方法,即使用Butterknife生成的类,用new
替换Butterknife.bind(this)
,然后在我的代码中使用它们。它确实起作用并使我的类变得模糊。但这里唯一的问题是,我必须将它们从
Debug
文件夹复制到我的包中,以免更改/删除。并在每次添加/删除视图时进行更新

我发现的另一个问题是使用数据绑定更好。但是现在对我来说改变整个代码已经太晚了

如果你发现了这方面的工作,请与大家分享。
我使用的是Butterknife v8.6.0。如果这有什么帮助的话

你甚至可以自己链接到你的答案

[…]在我从类中删除所有导入的黄油刀之前,Proguard不会处理它

这是因为在9.0版之前,Proguard规则是与黄油刀一起提供的

在9.0中,当使用生成的 代码API变得稳定


所以基本上你不可能轻易地完成你想要做的事情。最好是用黄油刀叉起build.gradle中的
consumerProguardFiles
定义。然后等待9.0版本发布,然后再次使用原始版本。

如果不从调试文件夹复制,会出现什么问题?请尝试以下回答:我想这是目前唯一的选项。如果这不起作用,那么让我们继续对v9抱有希望。谢谢你