是否有任何捷径(我知道,我不应该要求一个神奇的子弹)让dagger 1.2.2与proguard合作?
我们现在遇到问题,而且我们知道我们必须转移到Dagger 2.0以便从这个问题开始工作
Dagger + Proguard obfuscation, Errors creating object graph
然而,在我们坐下来做一个中等大小的重构之前,ObjectGraph不再存在于Dagger 2.0中,我只是想知道是否有任何忽略规则我可以放入我的proguard文件中以便在超短期?
由于
答案 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改变
这将允许您与构建一起运行模糊处理,以及其他人添加的关于将类保留在其他答案中的内容。
你不会混淆你的类名,但字段和方法会。有总比没有好!或者你可以在任何地方禁用混淆,只需使用收缩。