使用带匕首1.2.2的proguard

时间:2014-12-15 16:01:54

标签: android proguard dagger

是否有任何捷径(我知道,我不应该要求一个神奇的子弹)让dagger 1.2.2与proguard合作?

我们现在遇到问题,而且我们知道我们必须转移到Dagger 2.0以便从这个问题开始工作

Dagger + Proguard obfuscation, Errors creating object graph

然而,在我们坐下来做一个中等大小的重构之前,ObjectGraph不再存在于Dagger 2.0中,我只是想知道是否有任何忽略规则我可以​​放入我的proguard文件中以便在超短期?

由于

3 个答案:

答案 0 :(得分:3)

您可以使用这个利用Java Annotations处理的Dagger Proguard Helper库。

答案 1 :(得分:2)

对于Dagger,您需要保留生成的类:

-keep class **$$ModuleAdapter
-keep class **$$InjectAdapter
-keep class **$$StaticInjection

不幸的是,您还需要保留项目中相应的基类:

-keep class com.example.SomeClass

这样,Dagger仍然可以组合相应的类对。您可以通过在项目的gen目录中列出生成的类来找出基类(例如com / examples / SomeClass $$ ModuleAdapter.class)。

最后,您需要保留一个Dagger类:

-keep class dagger.Lazy

答案 2 :(得分:0)

#-dontobfuscate
-keepnames class your.package.**

最大的问题是dagger 1.2.2会创建类似“method / your.package.YourClass”的字符串,这些字符串不会被-adaptclassstrings改变

这将允许您与构建一起运行模糊处理,以及其他人添加的关于将类保留在其他答案中的内容。

你不会混淆你的类名,但字段和方法会。有总比没有好!或者你可以在任何地方禁用混淆,只需使用收缩。