使用Butterknife的Proguard可以防止类名混淆

时间:2017-05-31 04:59:55

标签: android android-proguard butterknife

由于Butterknife使用反射生成与所使用的每个activityfragment相关联的类。由于Proguard忽略了这些类而没有在其规则中对其进行模糊处理。

发现一个解决方法是使用Butterknife生成的类,用新ButterKnife.bind(this)替换Whatever_ViewBinder(this)并在我的代码中使用它们。哪个确实有效,Progurad会混淆我的课程。但这里唯一的问题是我必须将它们从Debug文件夹复制到我的包中才能被更改/删除。并在每次添加/删除视图时更新它。 source

我发现的另一个问题是,最好使用数据绑定代替Butterknife vs Data Binding。但现在为时已晚我改变整个代码

如果您发现任何相关工作,请分享。 我正在使用Butterknife v8.6.0。如果这有任何帮助

1 个答案:

答案 0 :(得分:1)

您甚至可以使用#746自行链接到您的答案。

  

[...]直到我从班级中删除所有进口的黄油刀,Proguard无法使用它。

这是因为Proguard规则随Butter Knife一起提供,直到版本9.0。

  

使用生成时,ProGuard规则将在9.0中分开   代码API变得稳定。

所以基本上你不可能轻易做你想做的事情。最好的方法是分叉Butter Knife并从 build.gradle 中删除consumerProguardFiles定义。然后等待9.0版本发布,然后再次使用原版。